-
排序
-
二分
-
高精度
-
前缀和 差分
#include <bits/stdc++.h>
using namespace std;
const int N = 110;
void solve()
{
int n;
string s;
cin >> n >> s;
int l = 0, r = n - 1;
bool f1 = 0, res = 1, f2 = 0;
while(l <= r)
{
if(s[l] != s[r] && !f1 ) f1 = 1;
else if(s[l] == s[r] && f1)
{
f2 = 1;
}
else if(s[l] != s[r] && f2)
{
res = 0;
break;
}
l ++, r --;
}
if(res) puts("Yes");
else puts("No");
}
int main()
{
int T;
cin >> T;
while(T -- )
{
solve();
}
return 0;
}
-
位运算
-
离散化
-
区间合并