1 条题解
-
0
超时的暴力枚举代码
#include <bits/stdc++.h> using namespace std; int main() { string s; cin >> s; for (int i = 0; i < s.size(); i++) { // 当前字符是 s[i] int cnt = 0; // 统计s[i]的出现次数 for (int j = 0; j < s.size(); j++) if (s[j] == s[i]) cnt++; if (cnt == 1) { cout << s[i]; return 0; } } cout << "no"; return 0; }
满分的代码
1
#include <bits/stdc++.h> using namespace std; int main() { string s; cin >> s; // cnt[i]: ascii 值为 i 的字符的出现次数 // 初始化为了全 0 int cnt[300] = {}; for (int i = 0; i < s.length(); i++) cnt[s[i]]++; // 当前字符为 s[i] for (int i = 0; i < s.length(); i++) if (cnt[s[i]] == 1) { cout << s[i]; return 0; } cout << "no"; return 0; }
2
#include <bits/stdc++.h> using namespace std; int main() { string s; cin >> s; // cnt[0] ~ cnt[25] : 分别储存 'a' ~ 'z' 的出现次数 // 初始化为了全 0 int cnt[30] = {}; for (int i = 0; i < s.length(); i++) cnt[s[i] - 'a']++; // 当前字符为 s[i] for (int i = 0; i < s.length(); i++) if (cnt[s[i] - 'a'] == 1) { cout << s[i]; return 0; } cout << "no"; return 0; }
- 1
信息
- ID
- 350
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 5
- 标签
- (无)
- 递交数
- 170
- 已通过
- 68
- 上传者