Решение задачи Минимальный циклический сдвиг с Acmp

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


Циклическим сдвигом строки s называется строка sk+1sk+2…sns1s2…sk для некоторого k (0 ≤ k < n), где n – длина строки s.

Для заданной строки требуется определить ее лексикографически минимальный циклический сдвиг, т.е. необходимо найти среди всех возможных циклических сдвигов строки тот, который идет первым в алфавитном порядке.

Код

#include <bits/stdc++.h>

using namespace std;

int main()
{
    string s;
    cin >> s;
    vector<string> a;
    a.push_back(s);
    for(int i = 0; i < s.size(); ++i){
        a.push_back(s.substr(i, s.size() - i) + s.substr(0, i));
    }
    sort(a.begin(), a.end());
    cout << a[0];
    return 0;
}

         

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



Комментарии

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