在一行上输入一个长度为
,仅由小写字母构成的字符串
,代表待处理的字符串。
在一行上输出一个字符串,代表删除后的答案。保证这个字符串至少包含一个字符。
aabcddd
aaddd
在这个样例中,出现次数最少的字符为
和
,因此需要同时删除这两个字符。
import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNextLine()) { // 注意 while 处理多个 case String str = in.nextLine(); //为空退出 if (str.isEmpty()) return; //退出符退出循环 if (str.equals("END")){ break; } Map<String,Integer> map = new HashMap<>(); char[] arr = str.toCharArray(); Set<Character> set = new HashSet<>(); //非全小写字符,退出 for(char c : arr){ if(!Character.isLowerCase(c)) return; //将字符放到set中,去重 set.add(c); } //存放去重后的字符 List<Character> list = new ArrayList<>(); for (char c : set){ list.add(c); } //存放字符和其计数 List<String> countList = new ArrayList<>(); for (int i = 0;i<list.size(); i++){ int n = 0; for(char c1: arr){ if (list.get(i) == c1){ n++; } } String temp = list.get(i)+","+n; countList.add(temp); } //计算出最小字符的计数 int min = str.length(); for (int i = 0;i<countList.size();i++){ String[] temp = countList.get(i).split(","); min = Math.min(min,Integer.parseInt(temp[1])); } //将计数等于最小字符的字符取出来 List<Character> charList = new ArrayList<>(); for (int i = 0;i<countList.size();i++){ String[] temp = countList.get(i).split(","); int n = Integer.parseInt(temp[1]); if (n == min){ charList.add(temp[0].charAt(0)); } } //循环对比最小计数字符和每个字符串字符,如果不是最小计数字符则输出 for (int i = 0; i<str.length();i++){ boolean flag = false; for (int j = 0; j < charList.size();j++){ if (charList.get(j)==str.charAt(i)){ flag = true; break; } } if (flag) continue; System.out.print(str.charAt(i)); } } } }
import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 String s = in.nextLine(); Map<Character, Integer> map = new HashMap<>(); char[] charArray = s.toCharArray(); for (char c : charArray) { map.put(c, map.getOrDefault(c, 0) + 1); } Integer min = map.values().stream().min((o1, o2)->o1 - o2).get(); for (Map.Entry entry : map.entrySet()) { Object k = entry.getKey(); Integer v = (Integer)entry.getValue(); if (v == min) { s = s.replaceAll(String.valueOf(k), ""); } } System.out.println(s); } }
import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String input = in.nextLine(); String result = reChars(input); System.out.println(result); } public static String reChars(String str) { // 使用HashMap来存储每个字符出现的次数 Map<Character, Integer> charCountMap = new HashMap<>(); for (char c : str.toCharArray()) { charCountMap.put(c, charCountMap.getOrDefault(c, 0) + 1); } // 找出出现次数最少的字符 int minCount = Integer.MAX_VALUE; for (int count : charCountMap.values()) { if (count < minCount) { minCount = count; } } // 删除出现次数最少的字符 StringBuilder result = new StringBuilder(); for (char c : str.toCharArray()) { if (charCountMap.get(c) > minCount) { result.append(c); } } return result.toString(); } }
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNextLine()) { int[] ss = new int[26]; String str = in.nextLine(); for(int i=0;i<str.length();i++){ ss[str.charAt(i)-'a']++; } int minCount = 21; for(int i=0;i<26;i++) { if(ss[i] > 0 && ss[i]< minCount) { minCount = ss[i]; } } StringBuilder sb = new StringBuilder(); for (int i = 0; i < str.length(); i++) { if(ss[str.charAt(i) - 'a'] != minCount) { sb.append(str.charAt(i)); } } System.out.println(sb); } } }
import java.util.HashMap; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); while (input.hasNext()) { String str = input.nextLine(); HashMap<Character, Integer> count = new HashMap<>(); for (char c : str.toCharArray()) { count.put(c, count.getOrDefault(c, 0) + 1); } //找出出现次数最少的字符的次数 int min = Integer.MAX_VALUE; for (int num : count.values()) { min = Math.min(min, num); } //构建新的字符串,去掉出现次数最少的字符 StringBuilder sb = new StringBuilder(); for (char c : str.toCharArray()) { if (count.get(c) > min) { sb.append(c); } } System.out.println(sb.toString()); } } }
import java.util.HashMap; import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String input = in.nextLine(); HashMap<Character,Integer> map = new HashMap<>(); for(int i=0;i<input.length();i++) { char tmp = input.charAt(i); if(map.containsKey(tmp)) { map.replace(tmp, map.get(tmp)+1); } else { map.put(tmp,1); } } int minValue = Integer.MAX_VALUE; for(Integer value:map.values()) { if(value<minValue) { minValue = value; } } for(int j=0;j<input.length();j++) { char tmp = input.charAt(j); if(map.get(tmp)!=minValue) { System.out.print(tmp); } } } }
import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); //统计所有字符的个数 HashMap<Character, Integer> map = new HashMap(); for (int i = 0; i < str.length(); i++) { char a = str.charAt(i); if (map.containsKey(a)) { int count = map.get(a); map.put(a, ++count); } else { map.put(a, 1); } } StringBuilder sb = new StringBuilder(""); //找到最小值并删除 int min = Collections.min(map.values()); Iterator <Map.Entry<Character, Integer>>it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry<Character, Integer> entry = it.next(); if (entry.getValue() == min) { it.remove(); } } //map里面存在的字符都是符合条件的,对比字符串,不断拼接符合条件爱你的字符 for(int i =0;i<str.length();i++){ if(map.containsKey(str.charAt(i))){ sb.append(str.charAt(i)); } } System.out.println(sb.toString()); } }
import java.util.*; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); while (scan.hasNext()) { HashMap map = new HashMap(); String s = scan.next(); char[] chars = s.toCharArray(); for (char c : chars) { if (map.containsKey(c)) { map.put(c, map.get(c) + 1); } else { map.put(c, 1); } } Integer less = map.entrySet().stream() .sorted(Comparator.comparingInt(Map.Entry::getValue)).findFirst().get().getValue(); //获取出现次数最少的字符 List lessList = map.entrySet().stream() .filter(e -> e.getValue() == less).map(Map.Entry::getKey).collect(Collectors.toList()); StringBuilder sb = new StringBuilder(); for (char nc : chars) { if (!lessList.contains(nc)) sb.append(nc); } System.out.println(sb); } } }
import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String str = in.next(); Map<Character, Integer> map = new HashMap(); char ch; for (int i = 0; i < str.length(); ++ i ) { ch = str.charAt(i); int t = map.getOrDefault(ch, 0); ++ t; map.put(ch, t); } Set<Character> set = map.keySet(); int min = 21; for (Character c : set) { if (map.get(c) < min) min = map.get(c); } for (Character c : set) { if (map.get(c) == min) { str = str.replace(c + "", ""); } } System.out.println(str); } }
import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String str = in.nextLine(); Map<Character, Integer> map = new HashMap<>(); for (char c: str.toCharArray()) { map.put(c, (map.getOrDefault(c, 0) + 1)); } Collection<Integer> values = map.values(); int min = Collections.min(values); for(Character c:map.keySet()){ if(map.get(c) == min){ str = str.replaceAll(String.valueOf(c),""); } } System.out.println(str); } }