UVA353 Pesky Palindromes

使用Set容器實作:







#include <iostream>
#include <set>
#include <iterator>
#include <string>
using namespace std;
int is_Palindrome(string s){
int i;
if(s.length()==1){
return 1;
}
for(i=0;i<s.length()/2;++i){
if(s[i]!=s[s.length()-1-i]){
return 0;
}
}
return 1;
}
int main() {
set<string> set_s;
set<string>::iterator it;
string s,temp;
int ans,i,j;
while(cin>>s){
set_s.clear();
ans=0;
for(i=0;i<s.length();++i){
temp=s[i];
for(j=i;j<s.length();++j){
if(j>i){
temp+=s[j];
if(is_Palindrome(temp)){
it=set_s.find(temp);
if(it==set_s.end()){
set_s.insert(temp);
++ans;
}
}
}else{
it=set_s.find(temp);
if(it==set_s.end()){
set_s.insert(temp);
++ans;
}
}
}
}
cout<<"The string '"<<s<<"' contains "<<ans<<" palindromes."<<endl;
}
return 0;
}

沒有留言:

張貼留言