题目来源于牛客竞赛: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

本文解析了牛客竞赛中的一道算法题,通过C++实现字符串处理算法,判断字符串是否满足特定条件,并提供了解题思路和代码示例。
296

被折叠的 条评论
为什么被折叠?



