В
Все
Х
Химия
В
Видео-ответы
А
Алгебра
Г
Геометрия
О
ОБЖ
Д
Другие предметы
У
Українська література
Р
Русский язык
Б
Беларуская мова
У
Українська мова
Э
Экономика
Ф
Физика
М
Математика
Ф
Французский язык
Г
География
И
Информатика
М
МХК
О
Окружающий мир
П
Психология
Н
Немецкий язык
О
Обществознание
П
Право
И
История
М
Музыка
Л
Литература
Қ
Қазақ тiлi
Б
Биология
А
Английский язык
KemPerOo
KemPerOo
06.03.2023 03:45 •  Информатика

Мир охватила эпидемия воспаления хитрости! ученым удалось выделить днк из трех вероятно зараженных клеток. днк каждой из клеток состоит из последовательности азотистых оснований, каждое из которых закодировано буквой a, g, t или c. вирус также описывается последовательностью азотистых оснований и эта последовательность встраивается в произвольное место днк клетки. чтобы выделить вирус, необходимо найти самую длинную последовательность подряд идущих азотистых оснований, которая встречается в днк всех трех зараженных клеток. формат входных данных во входных данных задается три строки, состоящих из символов a, g, t и c, описывающих днк зараженных клеток. длина строк не превосходит 100. формат результата выведите описание вируса. если возможных вариантов несколько — выведите любой.

Ответ:
DEADK1NG
DEADK1NG
09.10.2020 11:05

Решал эту штуку на с++.

И я думаю это самый норм язык для этого, потому что я перебирал

Кстати, если мой учитель это читает, я сам сделал эту штуку!


#include <iostream>

#include <string>

#include <algorithm>

#include <vector>

using namespace std;

int main()

{

   string a,b,c,mi;

   int y = 0;

   cin >> a >> b >> c;

   vector <string> z;

   if (a.length() <= b.length() && a.length() <= c.length()){

       mi = a;

   }

   else if (b.length() <= a.length() && b.length() <= c.length()){

       mi = b;

   }

   else{

       mi = c;

   }

   for (int i = 1;i <= mi.length();i++){

       y = 0;

       for (int l = 0;l < mi.length() - i + 1;l++){

           string s;

           for (int j = 0;j < i;j++){

               s = s + mi[l + j];

           }

           if (a.find(s) != std::string::npos && b.find(s) != std::string::npos && c.find(s) != std::string::npos){

               z.push_back(s);

               y = 1;

               break;

           }

       }

       if (y == 0){

           break;

       }

   }

   cout << z[z.size() - 1];

   return 0;

}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?