CF1619A

· · 题解

这个题目是一个模拟题。

我们首先读入一个字符串,如果这一个字符串不可以分为长度相同的两部分,就代表这一个字符串不是正方形字符串。否则,我们将其分成长度相同的两部分,如果这两部分字符串是相等的,说明是一个正方形字符串,否则就不是。

代码

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

int main()
{
    int n;
    cin >> n;
    while (n --)
    {
        string S;
        cin >> S;
        int len = S.length(); 
        if ((len & 1)) // 不能分割成两部分
            puts("no");
        else
        {
            int Len = len >> 1;
            string S1 = S.substr(0, Len); // 前面那一部分的字符串
            string S2 = S.substr(Len); // 后面那一部分的字符串
            if (S1 == S2)
                puts("yes");
            else
                puts("no");
        }
    }
    return 0;
}