题解 | #删除字符串中出现次数最少的字符#
删除字符串中出现次数最少的字符
https://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9
import java.util.Comparator; import java.util.HashMap; import java.util.Map; import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String str = in.nextLine(); String[] s = str.split(""); StringBuilder sb = new StringBuilder(); //去重str for(String c:s){ int indexOf = sb.indexOf(c); if (indexOf==-1){ sb.append(c); } } //记录每个字母出现的次数 并且找到最小值 Map<String,Integer> map = new HashMap<>(); for (int i = 0; i < sb.length(); i++) { String c = sb.charAt(i)+""; int j = str.length()-str.replaceAll(c,"").length(); map.put(c,j); } Integer integer = map.values().stream().min(Comparator.comparing(x -> x)).get(); //用“”替换出现次数最少的字母 for (Map.Entry<String,Integer> entry: map.entrySet()) { if (entry.getValue()==integer){ String key = entry.getKey(); str = str.replaceAll(key, ""); } } System.out.println(str); } }