题目描述
LZY最近迷上了字符串专题,他现在想到了一个问题,他用计算机模拟了一串字符串,他想知道他模拟随机出来的字符串中的字符能组成的最长回文串的长度是多少?你能帮助LZY解决这个问题吗?
LZY比较腹黑,模拟的字符串中包含大小写字母,请注意区分大小写。比如 “Zz” 不能当做一个回文字符串。
输入
测试样例由多组测试数据组成,每组测试数据第一行输入一个字符串s ( 1 <= s.length <= 10000 )
输出
输出这个随机字符串中的字符能组成的最大回文串的长度
样例输入
abccccdd
样例输出
7
代码
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
int l,t;
map<char,int>st;
while(cin>>s){
st.clear();
l=0,t=0;
for(int i=0;i<s.size();i++){
st[s[i]]++;
}
for(int i=0;i<st.size();i++){
if(st[i]%2==0){
l+=st[i];
}else{
l+=st[i]-1;
t=1;
}
}
l+=t;
cout<<l<<endl;
}
return 0;
}