题目来源于牛客竞赛:https://ac.nowcoder.com/acm/contest/discuss
题目描述:
输入描述:
输出描述:
示例1:
题解:
代码:
#include <bits/stdc++.h>
using namespace std;
bool isOk(string s) {
int n = s.length();
for (int i = 1; i < n; i++)
for (int j = 0; j < n; j++) {
if (s[j] < s[(i+j)%n]) break;
if (s[j] > s[(i+j)%n]) return false;
}
return true;
}
int main() {
int T;
string s;
scanf("%d", &T);
assert(T <= 300);
while (T--) {
cin>>s;
int n = s.length();
assert(n > 0 && n <= 200);
int i = 0;
while (i < n) {
for (int j = n-i; j > 0; j--) {
if (isOk(s.substr(i, j))) {
cout<<s.substr(i, j);
i += j;
if (i < n)printf(" ");
break;
}
}
}
cout<<endl;
}
return 0;
}
更多问题,更详细题解可关注牛客竞赛区,一个刷题、比赛、分享的社区。
传送门:https://ac.nowcoder.com/acm/contest/discuss