题解 | 删除字符串中出现次数最少的字符
删除字符串中出现次数最少的字符
https://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9
import java.util.Scanner; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.ArrayList; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNext()) { // 注意 while 处理多个 case String a = in.next(); HashMap<String,Integer> map = new HashMap<>(); for(int i=0;i < a.length();i++){ String k =String.valueOf(a.charAt(i)); map.put(k,map.getOrDefault(k,0)+1); } // 将 HashMap 的键值对转换为 List List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet()); // 使用 Collections.sort() 根据 value 排序 list.sort(Map.Entry.comparingByValue()); int index=0; StringBuffer sf =new StringBuffer(a); for (int i = 0; i < list.size(); i++) { if(list.get(i).getValue()==list.get(i+1).getValue()){ index=i+1; } else{ break;} } for(int j =0;j<=index;j++){ for(int k=0;k<list.get(j).getValue();k++){ int index_temp = sf.indexOf(list.get(j).getKey()); sf.deleteCharAt(index_temp); } } System.out.println(sf); } } }