题解 | #删除字符串中出现次数最少的字符#
删除字符串中出现次数最少的字符
https://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str;
int[] arr = new int[128];
while ((str = br.readLine()) != null) { // 注意 while 处理多个 case
StringBuilder Str = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
Str.append(str.charAt(i));
arr[Integer.valueOf(str.charAt(i))]++;
}//这个for循环记录每个字符出现的次数并记录得到arr
int n = str.length();
int k = 97;
int t = n;
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= 20; i++) {
while (arr[k] == i || k <= 122) {
if (arr[k] == i)
sb.append((char) (k));
k++;
}
k=97;
if (sb.length() > 0)
break;
} //这个for循环找到出现次数最少的字符并记录到sb
for (int i = 0; i < sb.length(); i++) {
for (int j = 0; j < n; j++) {
if (Str.charAt(j) == sb.charAt(i)) {
Str.deleteCharAt(j);
t--;
n--;
j--;
}
}
n = t;
t = n;
}//这个for循环遍历字符串,找到并删除
System.out.println(Str.toString().trim());
}
}
}
#删除字符串中出现次数最少的字符#
