专栏文章

题解:P14245 [CCPC 2024 Shandong I] 左移

P14245题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minkrkde
此快照首次捕获于
2025/12/02 04:01
3 个月前
此快照最后确认于
2025/12/02 04:01
3 个月前
查看原文

题解

我们设这个字符串为 ss,我们发现每一次左移之后的 s1s_1 会变成 sns_ns2s_2 变成 s1s_1,所以当 kk 合法时,满足 sks_ksk+1s_{k+1} 相等即可,最后判断一下开始就合法的情况,如果没有满足的 kk,输出 -1 即可。

正确代码

CPP
#include <bits/stdc++.h>
using namespace std;
char s[500005];
int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%s",s+1);
		int len = strlen(s+1);
		if(s[1]==s[len]) puts("0");
		else
		{
			bool flag = 1;
			for(int i=1;i<=len;i++)
			{
				if(s[i]==s[i+1])
				{
					printf("%d\n",i);
					flag = 0;
					break;
				}
			}
			if(flag) puts("-1");
		}
	}
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...