51nod1347 旋转字符串

基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题
 收藏
 关注

S[0...n-1]是一个长度为n的字符串,定义旋转函数Left(S)=S[1…n-1]+S[0].比如S=”abcd”,Left(S)=”bcda”.一个串是对串当且仅当这个串长度为偶数,前半段和后半段一样。比如”abcabc”是对串,”aabbcc”则不是。

现在问题是给定一个字符串,判断他是否可以由一个对串旋转任意次得到。


Input
第1行:给出一个字符串(字符串非空串,只包含小写字母,长度不超过1000000)
Output
对于每个测试用例,输出结果占一行,如果能,输出YES,否则输出NO。
Input示例
aa
ab
Output示例
YES
NO

题意:中文题

思路:根据题意,字符串长度为奇数时,肯定不满足条件

字符串长度为偶数时,无论对串怎么旋转还是对串,判定一下是否满足对串条件

#include <iostream>
#include<string>
using namespace std;

int main()
{
    string str;
    while(cin>>str)
    {
        int flag=1;
         if(str.length()&1)
         {


            cout<<"NO"<<endl;
            continue;
         }
        int mid=str.length()/2;
        for(int i=0;i<mid;i++)
        {
            if(str[i]!=str[mid+i])
                flag=0;
        }

        if(flag==0)
            cout<<"NO"<<endl;
        else
            cout<<"YES"<<endl;
    }
    //cout << "Hello world!" << endl;
    return 0;
}




posted @   Bryce1010  阅读(85)  评论(0编辑  收藏  举报
编辑推荐:
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
阅读排行:
· “你见过凌晨四点的洛杉矶吗?”--《我们为什么要睡觉》
· C# 从零开始使用Layui.Wpf库开发WPF客户端
· 提示词工程师自白:我如何用一个技巧解放自己的生产力
· C#/.NET/.NET Core技术前沿周刊 | 第 31 期(2025年3.17-3.23)
· 编程神器Trae:当我用上后,才知道自己的创造力被低估了多少
点击右上角即可分享
微信分享提示