题目:D-pairs称为特殊字符,即给出一串字符判,在字符串中任意一对字符,若从剩余的字符串中找出和这一对字符一样,且两个字符间隔也一样。那么输出NOT
思路:用map函数搞定
#include<iostream>
#include<string>
#include<cstring>
#include<map>
using namespace std;
int main(){
char s[80];
while(cin >> s && s[0] != '*'){
int len = strlen(s);
if (len < 3) {
cout <<s << " is surprising.\n";
continue;
}
bool v = true;
for (int k = 1; k < len; k++){
map<string, bool> flag;
for (int i = 0; i+k < len; i++)
{
char str[3] = {s[i] , s[i+k] , '\0'};
// cout << str <<endl;
if (flag[str]){
v = false;
break;
}
flag[str] = true;
}
}
if (v) cout <<s << " is surprising.\n";
else cout <<s << " is NOT surprising.\n";
}
}