poj3096Surprising Strings

简单枚举

#include <iostream>

#include <string>

using namespace std;

int main()

{

       freopen("sum.in","r",stdin);

       freopen("sum.out","w",stdout);

       string s;

       while(cin>>s,s!="*")

       {

              int len = s.size();

              bool flag = true;

              for(int i=1;i<len-1&&flag;i++)     //同一对字符从相隔一个字符开始枚举

                     for(int j=0;j+i<len&&flag;j++)     //这个位置为第一对的开始字母所在位置

                            for(int k=j+1;k+i<len&&flag;k++)      //这个位置为第一对的末字母所在位置

                                   if(s[j]==s[k]&&s[j+i]==s[k+i])    //如果两对字符对相等

                                          flag = false;

              if(flag)

                     cout<<s<<" is surprising."<<endl;

              else

                     cout<<s<<" is NOT surprising."<<endl;

       }

       return 0;

}

原文地址:https://www.cnblogs.com/yejinru/p/2378786.html