P52 環狀序列
阿新 • • 發佈:2018-04-16
clu strlen pac 表示 scanf space 位置 con ace
#include<bits/stdc++.h> using namespace std; //p表示的序列是否比q表示的序列字典序小 int less(const char* s,int p,int q) { int n=strlen(s); for(int i=0; i<n; i++) { if(s[(p+i)%n]!=s[(q+i)%n]) return s[(p+i)%n]<s[(q+i)%n]; } return 0; } int main() { char s[100]; scanf("%s",s); int l=strlen(s); int ans=0;//有ans記錄字典序最小的位置 for(int i=1; i<l; i++) { if(less(s,i,ans)) ans=i; } for(int i=0; i<l; i++) { printf("%c",s[(ans+i)%l]); } printf("\n"); return 0; }
//在字符串中實現循環用 % 。
P52 環狀序列