删除字符串中出现次数最少的字符,如果多个字符出现次数一样则都删除。
一个字符串。
删除字符串中出现次数最少的字符,如果多个字符出现次数一样则都删除,如果都被删除 则换为empty。
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String line = scanner.nextLine();
char[] arr = line.toCharArray();
// 统计每个字符出现的次数
Map<Character, Integer> map = new HashMap<Character, Integer>();
for (char c : arr) {
if (map.containsKey(c)) {
map.put(c, map.get(c) + 1);
} else {
map.put(c, 1);
}
}
// 最小次数
int minTime = map.values().stream().min(Integer::compareTo).get();
// 替换掉出现最小次数的字符
for (Map.Entry<Character, Integer> entry : map.entrySet()) {
if (entry.getValue().equals(minTime)) {
line = line.replaceAll(entry.getKey() + "", "");
}
}
// 输出结果
if (line.length() == 0) {
line = "empty";
}
System.out.println(line);
}
dftww
ww
本文收录于,华为OD机试2023(Java)
本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。