前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >环状序列

环状序列

作者头像
谙忆
发布2022-11-25 08:28:34
1490
发布2022-11-25 08:28:34
举报
文章被收录于专栏:程序编程之旅程序编程之旅

长度为n的环状串有n种表示法,分别为从某个位置开始顺时针得到。 求字典序最小的,也就是最小表示

代码语言:javascript
复制
#include <stdio.h>
#include <string.h>
#define maxn 105
int less(char *s,int p,int q)
{
   int i,n;
   n=strlen(s);
   for(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()
{
   int T ;
   char s[maxn];
   scanf("%d",&T);
   while(T--)
   {
      scanf("%s",s);
      int ans=0;
      int n=strlen(s);
      int i;
      for(i=0;i<n;i++)
      {
         if(less(s,i,ans)) ans=i;
         //不断更新ans
      }
      for(i=0;i<n;i++)
         putchar(s[(ans+i)%n]);
         putchar('\n');
   }
   return 0;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-09-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档