1 条题解
-
0
枚举
枚举分界点,将主串分为左右两部分并且保证两部分的长度至少为 .
分别验证两边是否都为回文串
#include<bits/stdc++.h> using namespace std; typedef long long LL; typedef pair<LL, LL> PII; #define x first #define y second const int N = 2e5 + 10, M = 60; bool check(string &s, int l, int r) { while(l < r) { if(s[l] == s[r]) l ++, r --; else return false; } return true; } int main() { int n; cin >> n; while (n -- ) { string s; cin >> s; bool flag = 0; for(int i = 1; i <= (int)s.size() - 3; i ++)//枚举分界点,得到两个区间[0,i] 和 [i + 1, s.size() - 1]; { if(check(s, 0, i) && check(s, i + 1, s.size() - 1)) { flag = 1; break; } } if(flag) cout << "Yes\n"; else cout << "No\n"; } }
- 1
信息
- ID
- 201
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 1
- 标签
- 递交数
- 31
- 已通过
- 7
- 上传者