牛客小白月赛31 I题
非对称之美
https://ac.nowcoder.com/acm/contest/10746/I
牛客小白月赛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; }