Codeforces Round #762 A. Square String?

题目大意

判断一个字符串是否为两个相同字符串相加 ,例如abcabc, abcdabcd.

 

分析

要满足题目条件,首先字符串要是偶数位数,不然不可能重复。然后我们再判断第n为是否与n+(m/2) 位是否相同(m是字符串长度),都相同则满足条则,不相同则不满足。

 

代码

#include<bits/stdc++.h>
using namespace std;

int t;

bool check(string a)
{
    int num=a.length();
    if(num%2!=0) return false;
    else
    {
        int p=num/2;
        for(int i=0;i<p;i++)
        {
            if(a[i]==a[i+p]) continue;
            else return false;
        }
    }
    return true;
}

int main()
{
    cin>>t;
    while(t--)
    {
        string a;
        cin>>a;
        if(check(a))
        {
            cout<<"YES"<<endl;
        }
        else cout<<"NO"<<endl;
    }
    return 0;
}

 

上一篇:【转】Oracle RAC 环境下的连接管理


下一篇:VFS四大对象之一 struct super_block