环状序列

简介: 环状序列

长度为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;
}
目录
相关文章
|
网络协议 安全 Linux
Tool之wget:wget的简介、安装、入门、使用方法之详细攻略(一)
Tool之wget:wget的简介、安装、入门、使用方法之详细攻略
Tool之wget:wget的简介、安装、入门、使用方法之详细攻略(一)
|
6月前
|
SQL 关系型数据库 数据库连接
|
存储 关系型数据库 MySQL
探索MySQL:关系型数据库的基石
MySQL,作为全球最流行的开源关系型数据库管理系统(RDBMS)之一,广泛应用于各种Web应用、企业级应用和数据仓库中
|
10月前
|
安全 Android开发 iOS开发
深入探讨Android与iOS操作系统的差异性
本文旨在通过对比分析Android和iOS两大主流移动操作系统,揭示它们在设计理念、用户体验、安全性、应用生态及系统更新等方面的根本差异。不同于传统的功能列表式摘要,本摘要强调了两大系统背后的哲学思想及其对用户日常使用的实际影响,为读者提供了一个宏观且深入的视角来理解这两种操作系统的独特之处。
|
JavaScript 前端开发 开发工具
|
Linux
Linux命令作业
Linux命令作业
185 0
|
缓存 安全 编译器
【Linux】基础IO —— 动静态库的制作与使用
【Linux】基础IO —— 动静态库的制作与使用
258 0
【Linux】基础IO —— 动静态库的制作与使用
|
存储 编解码 计算机视觉
|
云安全 人工智能 架构师
阿里云ACA、ACP和ACE认证考试有什么区别?考生应该如何选择?
阿里云认证分为ACA、ACP和ACE三个等级,考生应该考取ACA、ACP还是ACE阿里云认证证书呢?