poj 3096 Surprising Strings (set)
http://poj.org/problem?id=3096 #include<iostream> #include<string.h> #include<set> using namespace std; set<string>s; int main() { string str; int i,j; while(cin>>str) { int f=0; if(str[0]=='*')break; int len=str.size(); for(i=1;i<len-1;i++){ s.clear(); for(j=0;j<len-i;j++){ string a,b; a=str[j]; b=str[j+i]; a+=b; if(s.count(a)==1) { f=1;break; } else s.insert(a); } if(f)break; } if(f)cout<<str<<" is NOT surprising.\n"; else cout<<str<<" is surprising.\n"; } }