牛客小白月赛31 非对称之美
题目链接
搞不懂为什么全相同的时候为什么输出0,我一直以为应该输出1
如果字符串中有多个不相同的字符,那么最长非对称字符串要么为len,要么为len-1(len为字符串长度)
如果整个字符串为回文串,结果为len-1,否则为len。
#include <bits/stdc++.h>
using namespace std;
#define ll long long
string s[110];
int main () {
string str;
cin>>str;
int len = str.length();
map<char,int>mp;
int id=0;
for(int i=0;i<len;i++) {
if(mp[str[i]]) {
}else {
mp[str[i]] = (++id);
}
}
if(id == 1) {
printf("0\n");
}
else {
int pd=0;
for(int j=0; j<len/2;j++) {
if(str[j] != str[len-(j+1)]) {
pd=1; break;
}
}
if(pd)
printf("%d\n",len);
else printf("%d\n",len-1);
}
return 0;
}


京公网安备 11010502036488号