Решение задачи Подстроки из одинаковых букв с Acmp

Без пояснения   Просмотров: 26


В заданной строке, состоящей из малых английских букв, необходимо найти пару самых длинных подстрок, состоящих из одних и тех же букв (возможно, в разном порядке). Например, в строке twotwow это будут подстроки wotwo и otwow.

Код

#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
    string s, s1;
    cin >> s;
    s1 = s;
    int jj, sum = 0, otvet = 0;
    bool b = true;
    sort(s1.begin(), s1.begin() + s1.size());
    for(int i = 0; i < s1.size(); ++i)
        if(s1[i] == s1[i + 1])
            b = false;
    if(b){
        cout << 0;
        return 0;
    }
    for(int i = 0; i < s.size(); ++i){
        for(int j = s.size() - 1; j >= 0; --j)
            if(s[i] == s[j]){
                jj = j;
                break;
            }
        sum = jj - i;
        if(sum > otvet)
            otvet = sum;
    }
    cout << otvet;
    return 0;
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться