首页 > 其他 > 详细

P52 环状序列

时间:2018-04-16 12:48:41      阅读:163      评论:0      收藏:0      [点我收藏+]
#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 环状序列

原文:https://www.cnblogs.com/laoyangtou/p/8855131.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!