日志
个字符串是回文串,当且仅当该字符串从前往后读和从后往前读是⼀样的,例如aabaa和ccddcc都是回⽂串, 但abcd不是。 乎乎有 n 个仅包含小写字母的字符串,他想请你编写程序判断每个字符串是否由两个长度至少为 2的回文串前后拼接而成。、
#include <bits/stdc++.h>
using namespace std;
bool is_palindrome(const string& s) {
int left = 0;
int right = s.size() - 1;
while (left < right) {
if (s[left] != s[right]) {
return false;
}
left++;
right--;
}
return true;
}
bool can_be_split_into_two_palindromes(const string& s) {
int n = s.size();
for (int i = 2; i <= n - 2; ++i) {
if (is_palindrome(s.substr(0, i)) && is_palindrome(s.substr(i))) {
return true;
}
}
return false;
}
int main() {
int n;
cin >> n;
vector<string> strings(n);
for (int i = 0; i < n; ++i) {
cin >> strings[i];
}
for (const string& s : strings) {
if (can_be_split_into_two_palindromes(s)) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
}
return 0;
}