题解 | #删除字符串中出现次数最少的字符#
删除字符串中出现次数最少的字符
https://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
String a = in.next();
System.out.println(change(a));
}
}
private static String change(String a) {
HashMap<String, Integer> map = new HashMap<>();
//统计每个字符出现的次数
int length = a.length();
for (int i = 0; i < length; i++) {
String s = String.valueOf(a.charAt(i));
if (map.containsKey(s)) {
map.put(s, map.get(s) + 1);
} else {
map.put(s, 1);
}
}
//获取出现次数最少的字符串集合
ArrayList<String> list = new ArrayList<>();
for (Integer i = 1; i < length; i++) {
if (map.containsValue(i)) {
Integer finalI = i;
map.forEach((s1, s2) -> {
if (finalI.equals(s2)) {
list.add(s1);
}
});
break;
}
}
//根据集合记录修改字符串
for (String s : list) {
a = a.replaceAll(s, "");
}
return a;
}
}
解题思路:
1, 统计每个字符出现的次数;
2, 获取出现次数最少的字符串集合;
3, 根据集合记录修改字符串

