给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?
输出需要删除的字符个数。
#include<iostream>
#include<string>
#include<set>
using namespace std;
int
main(){
string str;
while
(cin>>str){
int
count=
1
;
int
sum=
0
;
set<
char
> s;
for
(
int
i=
0
;i<str.size();i++){
count=
1
;
if
(s.count(str[i])==
0
){
for
(
int
j=i+
1
;j<str.size();j++)
{
if
(str[i]==str[j])
{
count++;
}
}
if
(count%
2
==
1
)
sum++;
s.insert(str[i]);
}
else
continue
;
}
if
(sum>=
1
)
{
sum=sum-
1
;
cout<<sum<<endl;
}
else
cout<<
0
<<endl;
}
return
0
;
}
|