zoukankan      html  css  js  c++  java
  • 51nod 1347 旋转字符串

    基准时间限制: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 <algorithm>
    #include <iostream>
    #include <cstring>
    #include <cstdlib>
    #include <cstdio>
    #include <string>
    #include <vector>
    #include <ctime>
    #include <queue>
    #include <cmath>
    
    using namespace std;
    
    char a[1000001],b[1000001];
    int main()
    {
        while(gets(a))
        {
            int al=strlen(a);
            if(al%2)
            {
                puts("NO");
                break;
            }
            for(int i=1;i<al;++i)
            b[i-1]=a[i];
            b[al-1]=a[0];
            int mid=(0+al)>>1;
            int l=0,r=mid;
            while(b[l]==b[r])
            {
                l++;r++;
                if(l>mid) break;
            }
            if(l>=mid)
            puts("YES");
            else puts("NO");
            getchar();
        }
    }
     
    我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。
  • 相关阅读:
    leetcode203
    leetcode88
    leetcode219
    leetcode225
    2018-12-25-C#-使用转换语义版本号
    2018-12-25-C#-使用转换语义版本号
    2018-10-15-Winforms-可能遇到的-1000-个问题
    2018-10-15-Winforms-可能遇到的-1000-个问题
    2018-8-10-UWP-WPF-解决-xaml-设计显示异常
    2018-8-10-UWP-WPF-解决-xaml-设计显示异常
  • 原文地址:https://www.cnblogs.com/ruojisun/p/6399089.html
Copyright © 2011-2022 走看看