给定一个字符串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 ; } |