环状序列

简介: 环状序列

长度为n的环状串有n种表示法,分别为从某个位置开始顺时针得到。

求字典序最小的,也就是最小表示

#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;
}
目录
相关文章
|
4月前
|
机器学习/深度学习 自然语言处理
序列到序列建模
序列到序列建模
|
关系型数据库 MySQL 数据库
|
机器学习/深度学习 Windows
1228 序列求和 (伯努利数)
1228 序列求和 (伯努利数)
90 0
|
存储
[递推]双幂序列、多幂序列、双幂积序列的和
[递推]双幂序列、多幂序列、双幂积序列的和
203 0
[递推]双幂序列、多幂序列、双幂积序列的和
|
Python
|
存储 开发者 索引
序列|学习笔记
快速学习 序列
114 0
根据序列,进行中后序列输出
根据序列,进行中后序列输出
101 0