1149.子串计算(map的应用)
- 题目描述:
- 
给出一个01字符串(长度不超过100),求其每一个子串出现的次数。 
- 输入:
- 
输入包含多行,每行一个字符串。 
- 输出:
- 
对每个字符串,输出它所有出现次数在1次以上的子串和这个子串出现的次数,输出按字典序排序。 
- 样例输入:
- 
10101 
- 样例输出:
- 
0 2 01 2 1 3 10 2 101 2 
#include<iostream> #include<cstring> #include<map> using namespace std; int main(){ string s; while(cin>>s){ map<string,int> m; //声明一个map for(int i=0;i<s.size();i++){ for(int j=i;j<s.size();j++){ string str=s.substr(i,j-i+1); m[str]++; //这么使用的 } } map<string,int>::iterator iter; //声明一个指示器 for(iter=m.begin();iter!=m.end();iter++){ if(iter->second>1) cout<<iter->first<<" "<<iter->second<<endl; } } return 0; }
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号