这个题是对STL中Map的使用考察。
记录一下代码:
#include <stdio.h>
#include <map>
#include <string.h>
#include <string>
using namespace std;
int main()
{
char s[100];
while(scanf("%s",s),s[0]!='*')
{
int p=strlen(s),i,j;
if(p<3)
{
printf("%s is surprising.\n",s);
continue;
}
bool flat=1;
for(i=1;i<p;i++)
{
map<string ,bool> map1;
for(j=0;j<p-i;j++)
{
char c[3]={s[j],s[j+i],'\0'};
if(!map1[c])
{
map1[c]=1;
}
else
{
flat=0;
break;
}
}
if(!flat)
{
break;
}
}
if(flat)
{
printf("%s is surprising.\n",s);
}
else
{
printf("%s is NOT surprising.\n",s);
}
}
return 0;
}