Rabbit的字符串 字符串最小表示法

Rabbit的字符串

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int maxn = 1e5+5;
 4 char s[maxn];
 5 int get_min_pos() {
 6     int ans = 0, cmp = 1, k = 0, t, len = strlen(s);
 7     while (ans<len && cmp<len && k<len) {
 8         int t = s[(ans+k)%len]-s[(cmp+k)%len];
 9         if (!t) k++;
10         else {
11             if (t > 0) ans += k+1;
12             else cmp += k+1;
13             if (ans == cmp) cmp++;
14             k = 0;
15         }
16     }
17     return min(ans,cmp);
18 }
19 int main() {
20     int n; scanf("%d",&n);
21     scanf("%s",s);
22     if (get_min_pos() == 0) puts("NO");
23     else puts("YES");
24     return 0;
25 }

猜你喜欢

转载自www.cnblogs.com/wstong/p/11707939.html
今日推荐