题意:
看题目示例领会
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;}
新闻热点
疑难解答