最小表示法

给定一个字符串,我们不断把他最后一个字符放到开头,就会得到n个字符串,求其中字典序最小的就是最小表示法

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=1000005;
int main(){
   
	char a[maxn];
	scanf("%s",a+1);
	int n=strlen(a+1);
	for(int i=1;i<=n;i++)	a[n+i]=a[i];
	int i=1,j=2,k;
	while(i<=n&&j<=n){
   
		for(k=0;k<n&&a[i+k]==a[j+k];k++);
		if(k==n)	break;
		if(a[i+k]>a[j+k]){
   
			i=i+k+1;
			if(i==j)	i++;
		}
		else{
   
			j=j+k+1;
			if(i==j)	j++;
		}
	}
	int ans=min(i,j);
	printf("%d",ans);
	return 0;
} 
全部评论

相关推荐

点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-23 17:32
那如果是字节外包呢?据我所知工牌无区别&nbsp;可以晒出去装X的那种
秋盈丶:残酷的是,都一样,管你是不是字节,不过我是很反对这种的,本是同根生,市场行情决定了用工的模式会有很多外包,分层只是单纯为了筛选
点赞 评论 收藏
分享
若怜君欢:驾驶证去掉吧,PPT啥的也去掉,本硕课程去掉,导师和研究方向去掉;加入本硕排名(好才写);技能栏加入你会的那些控制算法和滤波算法,这个比你会啥啥啥软件更有用;获奖写上去,奖学金啊,有没有专利啊之类的 电机和硬件这一块,属于传统制造业,制造业实习并不多。多投一些攒攒经验,有实习最好,没有也不需要焦虑(制造业实习其实除了转正,没多大用处) 最后,划重点,等秋招开始后,把你所有社交软件都发一份简历上去,并经常更新,找人内推你!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务