题解:AT_joi2023_yo1b_c 繰り返し文字列 (Repeating String)
解题思路
要判断字符串是否为重复字符串,只需检查其前半部分与后半部分是否完全相同。
核心结论
当字符串长度为偶数时,若前半部分与后半部分完全一致,则该字符串是重复字符串。
判断方法
-
分割字符串:将输入字符串从中间分为前后两部分,每部分长度为
\displaystyle \frac{n}{2} 。 -
比较两部分:直接比较前半部分与后半部分是否完全相同。
代码实现
#include <bits/stdc++.h> using namespace std; int main() { int n; string s; cin >> n >> s; string fi = s.substr(0, n / 2); string se = s.substr(n / 2); //将字符串分为前后两半 cout << (fi == se ? "Yes" : "No"); //比较两个子字符串是否相等 return 0; }