3 条题解
-
3
#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
字符串长度比较小,可以暴力到底。 求出所有的子串以后存到一个字符数组里 然后直接排序就会排成字典序的 然后存到一个动态数组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; }
-
-4
写题解请注意 鼓励大家写题解,但注意题解格式。
题解一定要有思路解析或代码注释,能否让别人理解你的思路
也是你的能力的检验,不要只放无意义的代码给大家复制,那就失去了做题的初心。
给代码两端加上这个会舒服一些
```cpp
你的代码
```
</span>
这个点在键盘的左上角tab上面那个键,注意切换输入法
#include<iostream> using namespace std; int main() { int n; cin>>n;//这是一个注释 return 0; }
请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。
抄袭题解一经发现直接取消成绩。
题解被删除的可能
- 代码不符合格式规范
- 没有思路讲解或者没有注释,
- 无意义的题解
大家携手共同维护一个良好的编程环境,如果一经发现,多次作乱。可能会被管理员拉黑,请注意,一旦拉黑即失去登陆资格。
- 1
信息
- ID
- 116
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- 递交数
- 86
- 已通过
- 56
- 上传者