专栏文章
题解:P14245 [CCPC 2024 Shandong I] 左移
P14245题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @minkupcx
- 此快照首次捕获于
- 2025/12/02 04:03 3 个月前
- 此快照最后确认于
- 2025/12/02 04:03 3 个月前
思路
题目要求令表示将字符串向左移动次后的结果,一个美丽的需要保证首尾相同;
所以在移动第次的时候,此时移动到了字符串末尾移动到了字符串首位,所以只需要遍历字符串,每次比较和的值是否相等即可;
相等的话直接输出此次循环的次数,最后结束循环。
code
CPP//头文件省略
int t;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>t;
for(int n=1;n<=t;n++){
string s;
cin>>s;
int len=s.size();
int m=s[len-1];
if(s[0]==m || len==1){
cout<<0<<endl;
continue;
}else{
bool cnt=false;
for(int i=0;i<len;i++){
if(s[i]==s[i+1]){
cnt=true;
cout<<i+1<<endl;
break;
}
}
if(!cnt) cout<<-1<<endl;
}
}
return 0;
}
- 注:在循环遍历前增加特判加快效率,特判不用移动就能保证首位相同或字符串长度为1的情况。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...