3 条题解

  • 3
    @ 2022-2-24 21:01:01
    
    #include <bits/stdc++.h>
    using namespace std;
    string s;
    map<string,int> m;
    int main()
    {
    	ios::sync_with_stdio(false);
    	cin.tie(0); 
    	cin>>s;
    	for(int i=0;i<s.length();i++)
    	{
    		string s1="";
    		for(int j=i;j<s.length();j++)
    		{
    			s1=s1+s[j];
    			m[s1]++;
    		}
    	}
    	map<string,int>::iterator iter;//map的遍历需要设置好迭代器,iter就是个名字 
    	for(iter=m.begin();iter!=m.end();++iter)
    	{
    		if(iter->second>1)
    		{
    			cout<<iter->first<<" "<<iter->second<<endl;//iter->first 指的是键,iter->second指的是值。
    		}
    	} 
    	return 0;
    }
  • 3
    @ 2022-2-24 20:55:52
    
    字符串长度比较小,可以暴力到底。
    求出所有的子串以后存到一个字符数组里
    然后直接排序就会排成字典序的
    然后存到一个动态数组v1里
    然后v2存一下原字符数组去重后的
    统计个数这里用了algorithm的count函数
    #include <bits/stdc++.h>
    using namespace std;
    string s;
    string a[50005]; 
    int cnt=1;
    vector<string> v,v1;
    bool vis[50005]; 
    int main()
    {
    	ios::sync_with_stdio(false);
    	cin.tie(0); 
    	cin>>s;
    	for(int i=0;i<s.length();i++)
    	{
    		string s1="";
    		for(int j=i;j<s.length();j++)
    		{
    			s1=s1+s[j];
    			a[cnt++]=s1;
    		}
    	}
    	sort(a+1,a+cnt);
    	for(int i=1;i<=cnt;i++)
    	{
    		v.push_back(a[i]);//这里存了所有的子串
    	}
    	int N=unique(a+1,a+cnt)-a-1;
    	for(int i=1;i<=N;i++)
    	{
    		v1.push_back(a[i]);//这里只有不重复的
    	}
    	for(int i=0;i<v1.size();i++)//遍历不重复的
    	{
    		if(count(v.begin(),v.end(),v1[i])>1)//在重复的里面找次数大于1的
    		{
    			cout<<v1[i]<<" "<<count(v.begin(),v.end(),v1[i])<<endl;//输出对应的字符和次数
    		}
    	}
    	return 0;
    }
    • @ 2022-2-24 20:56:49

      如果用map的话会更好一些,map<string,int> m;可以直接将每个子串和对应的次数建立起映射关系,而且map自带排序功能

  • -4
    @ 2022-4-24 16:39:50

    写题解请注意

    鼓励大家写题解,但注意题解格式。

    题解一定要有思路解析或代码注释,能否让别人理解你的思路

    也是你的能力的检验,不要只放无意义的代码给大家复制,那就失去了做题的初心。

    给代码两端加上这个会舒服一些

    ```cpp

    你的代码

    ```

    </span>

    这个点在键盘的左上角tab上面那个键,注意切换输入法

    #include<iostream>
    using namespace std;
    int main()
    {
        int n;
        cin>>n;//这是一个注释
        return 0;
    } 
    

    请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。

    抄袭题解一经发现直接取消成绩。

    题解被删除的可能

    1. 代码不符合格式规范
    2. 没有思路讲解或者没有注释,
    3. 无意义的题解

    大家携手共同维护一个良好的编程环境,如果一经发现,多次作乱。可能会被管理员拉黑,请注意,一旦拉黑即失去登陆资格。

    • 1

    信息

    ID
    116
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    86
    已通过
    56
    上传者