#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string> #include<vector> #include<iostream> #include<map> using namespace std; //给出一个01字符串(长度不超过100),求其每一个子串出现的次数。 //输入包含多行,每行一个字符串。 //对每个字符串,输出它所有出现次数在1次以上的子串和这个子串出现的次数,输出按字典序排序。 int main() { char str[101]; scanf("%s", str); string str1 = str; map<string, int> myMap; for (int i = 0; i < str1.size(); i++) { for (int j = i; j < str1.size(); j++) { myMap[str1.substr(i, j - i + 1)]++; } } map<string, int>::iterator it; for (it = myMap.begin(); it != myMap.end(); it++) { if (it->second >= 2) { printf("%s %d\n", it->first.c_str(), it->second); } } return 0; }