零、原题链接
一、题目描述

二、测试用例

三、解题思路
- 基本思路:
先找到最少字符的数量,然后删除最少数量的字符即可; - 具体思路:
- 先统计每个字符的数量;
- 遍历字符数量,寻找最小值;
- 输出字符,如果该字符的数量和最小值相同,则不输出;
四、参考代码
时间复杂度:
O
(
n
)
\Omicron(n)
O(n)【n 表示字符串长度】
空间复杂度:
O
(
1
)
\Omicron(1)
O(1)【map 表的空间是常数级】
#include <iostream>
using namespace std;
int main() {
int c[26] = {0};
string str;
cin >> str;
for (int i = 0; i < str.length(); i++) {
c[str[i] - 'a']++;
}
int _min = 1e5;
for (int i = 0; i < 26; i++) {
if (c[i] == 0)
continue;
_min = min(_min, c[i]);
}
for (int i = 0; i < str.length(); i++) {
if (c[str[i] - 'a'] != _min) {
cout << str[i];
}
}
}
// 64 位输出请用 printf("%lld")
1004

被折叠的 条评论
为什么被折叠?



