三种解法有没有你喜欢的 | 检测单词重复
2026-01-18 19:30:59
发布于:广东
0阅读
0回复
0点赞
暴力:
#include <bits/stdc++.h>
using namespace std;
string s;
int main () {
cin >> s;
//双重循环遍历
for (int i = 0;i < s.size();i++) {
for (int j = i + 1;j < s.size();j++) {
if (s[i] == s[j]) { //判断是否相同
cout << "no";
return 0;
}
}
}
cout << "yes";
return 0;
}
桶标记:
#include <bits/stdc++.h>
using namespace std;
string s;
int tbj[27];
int main () {
cin >> s;
for (int i = 0;i < s.size();i++) {
tbj[s[i] - 'a' + 1]++; //统计第 s[i] - 'a' + 1 个字母的个数
if (tbj[s[i] - 'a' + 1] > 1) { //如果大于一个
cout << "no";
return 0;
}
}
cout << "yes";
return 0;
}
map:
#include <bits/stdc++.h>
using namespace std;
string s;
map <char, int> mp; //定义mapSTL容器 map <数据类型1,数据类型2> 容器名;
int main () {
cin >> s;
for (int i = 0;i < s.size();i++) {
mp[s[i]]++; //个数++
if (mp[s[i]] > 1) { //如果多于1个
cout << "no";
return 0;
}
}
cout << "yes";
return 0;
}
这里空空如也






有帮助,赞一个