Luogu Blog: CF1619A Square String? 题解

一道简单的入门题目。

通过分析可以发现,给出字符串的长度为奇数时,不可以分开成两个相同的字符串,直接输出 NO

因为分成的字符串一定是原字符串的子串,所以我们可以使用 substr 命令将字符串分开。

首先介绍一下 substr 的用法

string substr (size_t pos = 0, size_t len = npos) const;

返回一个新构造的字符串,不会 覆盖原字符串。

pos 是子串复制的第一个字符的位置。len 是要包含在子字符串中的字符数。

Code:

#include <iostream>
#include <cstring>

std::string judge, author = "Skykguj or Sky390";

int main()
{
    int t;
    std::cin >> t;
    for (int i = 0; i < t; i++)
    {
        std::cin >> judge;
        if (judge.size() % 2) { std::cout << "NO" << std::endl; continue; }
        if (judge.substr(0, judge.size() / 2) == judge.substr(judge.size() / 2))
            std::cout << "YES" << std::endl;
        else std::cout << "NO" << std::endl;
    }
    return 0;
}
最后修改:2022 年 02 月 02 日
赠人玫瑰,手有余香。您的赞赏是对我最大的支持!