题解 | #删除字符串中出现次数最少的字符#
删除字符串中出现次数最少的字符
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()); } } }#删除字符串中出现次数最少的字符#