zoukankan      html  css  js  c++  java
  • 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;
    }
    




  • 相关阅读:
    Atom 和 markdown 基本使用
    c++11 正则表达式基本使用
    Emacs 之窗口管理
    Emacs 之列编辑模式
    Emacs 之查看帮助
    使用 json_in_java
    Linux服务 httpd
    Linux 编译安装BIND
    Kerberos
    Linux服务 DNS&BIND
  • 原文地址:https://www.cnblogs.com/bryce1010/p/9387364.html
Copyright © 2011-2022 走看看