1. 程式人生 > >P52 環狀序列

P52 環狀序列

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 環狀序列