环状序列

简介: 环状序列

长度为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月前
leetcode-187:重复的DNA序列
leetcode-187:重复的DNA序列
28 0
|
10月前
|
C语言
C语言:输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。
描述 输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。 输入描述: 输入包含三行, 第一行包含两个正整数n, m,用空格分隔。n表示第二行第一个升序序列中数字的个数,m表示第三行第二个升序序列中数字的个数。 第二行包含n个整数,用空格分隔。 第三行包含m个整数,用空格分隔。
180 0
C语言:输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。
|
11月前
|
关系型数据库 MySQL 数据库
|
存储
[递推]双幂序列、多幂序列、双幂积序列的和
[递推]双幂序列、多幂序列、双幂积序列的和
137 0
[递推]双幂序列、多幂序列、双幂积序列的和
|
Python
|
存储 开发者 索引
序列|学习笔记
快速学习 序列
根据序列,进行中后序列输出
根据序列,进行中后序列输出
86 0