POJ训练计划3096_Surprising Strings(STL/map)
Posted claireyuancy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ训练计划3096_Surprising Strings(STL/map)相关的知识,希望对你有一定的参考价值。
解题报告
题意:
给一个字符串,要求。对于这个字符串空隔为k取字符对(k=0,1,2,3,4...)要求在同样的空隔取对过程汇总。整个字符串中没有一个同样字符对如:
ZGBZ:
间隔为0的字符对有: ZG、GB、BZ,三个均不同样
间隔为1的字符对有: ZG、 GZ,均不同样
间隔为2的字符对有: ZZ 仅有一个,不必比較。
这样的字符串定义为"surprising".
之后依照格式输出。
思路:
map暴力。
#include <iostream> #include <cstring> #include <cstdio> #include <map> using namespace std; int main() { string str,ch; int i,j; while(cin>>str) { map<string,int>Map; if(str[0]==‘*‘) break; int f=0; if(str.length()<=2){ cout<<str<<" is surprising."<<endl; } else { for(i=0;i<=str.length()-2;i++) { Map.clear(); for(j=0;j<str.length()-i-1;j++) { ch.clear(); ch+=str[j]; ch+=str[j+i+1]; if(!Map[ch]) Map[ch]=1; else { f=1; break; } } } if(f) cout<<str<<" is NOT surprising."<<endl; else cout<<str<<" is surprising."<<endl; } } return 0; }
以上是关于POJ训练计划3096_Surprising Strings(STL/map)的主要内容,如果未能解决你的问题,请参考以下文章
POJ 3096 -- Surprising Strings
POJ 3096-Surprising Strings(set)