子串计算

题目链接
直接暴力,用map函数存每个子串出现的次数,子串的类型使用两层循环遍历。

#include<bits/stdc++.h>
using namespace std;
int main(){
	string str;
	map<string, int> mp;
	while(cin>>str){
		mp.clear();
		for(int i=0; i<str.size(); i++){
			for(int j=i; j<str.size();j++){
				string s;
				for(int k=i; k<=j;k++){ //注意这里要取等号
					s += str[k];
				}	
				mp[s]++; 
			}
		}
		for(auto it: mp){
			if(it.second > 1){
				cout<<it.first<<" "<<it.second<<endl;
			}
		}
	}
	return 0;
} 
全部评论

相关推荐

01-30 16:13
浙江大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务