首页 > 学院 > 开发设计 > 正文

poj 3096 Surprising Strings

2019-11-11 01:59:25
字体:
来源:转载
供稿:网友

题意:

看题目示例领会

Consider the string ZGBG. Its 0-pairs are ZG, GB, and BG. Since these three pairs are all different, ZGBG is 0-unique. Similarly, the 1-pairs of ZGBG are ZB and GG, and since these two pairs are different, ZGBG is 1-unique. Finally, the only 2-pair of ZGBG is ZG, so ZGBG is 2-unique. Thus ZGBG is surPRising.

解题思路:

用map存每个pair,判断是否存在即可。

代码:

#include <iostream>#include <cstdio>#include <map>#include <string>#include <cstring>using namespace std;int main(){    string str;    while(cin>>str)    {        map<string, int>d[80];        if(str=="*")break;        int i, j;        int len=str.size();        string mpstr;        int ans=1;        for(i=1; i<=len-1; i++)        {            for(j=0; j+i<len; j++)            {                char e[11];                e[0]=str[j];                e[1]=str[j+i];                e[2]='/0';                mpstr=e;//                cout<<mpstr<<endl;                if(d[i].find(mpstr)!=d[i].end())ans=0;                else d[i][mpstr]=1;            }        }        if(ans)        {            cout<<str<<" is surprising."<<endl;        }        else cout<<str<<" is NOT surprising."<<endl;    }    return 0;}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表