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

· · 题解

题目重述

给定长度为 n 的字符串 s ,令 s循环同构 aa_1a_n 相等。

注:循环同构是将字符串视为环形结构后,通过旋转或循环移位生成不同位置的子串。‌‌

问题分析

思考,每次左移后$s_1$会变成 $s_n$ , $s_2$ 会成为$s_1$ ,所以只需考虑 ($1≤i≤n$) $s_i$ 是否等于 $s_i$ 的下一位即可。 ## AC code ```cpp #include<bits/stdc++.h> #define int long long using namespace std; signed main() { int t; cin>>t; while(t--) { string s; cin>>s; if(s[0]==s[s.size()-1]) { cout<<0<<endl; continue; } int ans=-1; for(int i=0;i+1<s.size();i++) { if(s[i]==s[i+1]) { ans=i+1; break; } } cout<<ans<<endl; } return 0; } ``` [AC 记录](https://www.luogu.com.cn/record/241284352)