题解 | #子串计算#
子串计算
https://www.nowcoder.com/practice/bcad754c91a54994be31a239996e7c11
#include<bits/stdc++.h> using namespace std; map<string,int> m; int main(){ char str[101]; fgets(str,101,stdin); string str1 = str; str1.pop_back();//去掉最后换行符 for(int i = 1 ; i <= str1.size();i++){//i从1开始,这样j-i才能最开始是1开始 for(int j = 0 ; j < i ; j++){ string key = str1.substr(j,i-j); m[key]++;//出现的子串进行累加 } } map<string,int>::iterator it; for(it = m.begin(); it != m.end();it++){ if(it->second >1){ printf("%s %d\n",it->first.c_str(),it->second); } } }