题解 | #删除字符串中出现次数最少的字符#
删除字符串中出现次数最少的字符
https://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9
具体都有注解啦,就不过多阐述了。有问题可评论讨论。(另外:欢迎来笔者的掘金来交流哦~ 南方者 https://juejin.cn/user/2840793779295133/posts)
#笔试刷题##华为笔试#
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
public class Main{
public static void main(String[] args) throws Exception{
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String str = sc.nextLine();
int[] nums = new int[26]; // 26个小写字母,记录对应的值
for (char ch : str.toCharArray()) {
nums[ch - 'a']++;
}
int min = 20; // 找最小值
for (int i = 0; i < nums.length; i++) {
if (nums[i] == 0) { // 去掉没有0的
continue;
}
if (min > nums[i]) { // 找到最少出现的字符数
min = nums[i];
}
}
String minSameChar = "";
for (int i = 0; i < nums.length; i++) {
if (min != nums[i]) { // 不符合最少出现的字符数就跳过
continue;
}
minSameChar += (char) (i + 'a'); // 记录最少出现次数的字符
}
// System.out.println(minSameChar);
for (char ch : str.toCharArray()) {
if (minSameChar.contains(ch + "")) { // 判断当前字符是否在最少出现次数的字符集合里
continue;
}
System.out.print(ch);
}
}
}
}
查看19道真题和解析