题解 | #删除字符串中出现次数最少的字符#
删除字符串中出现次数最少的字符
https://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args){
shanchuLeast();
}
public static void shanchuLeast(){
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String in = null;
try {
in = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
HashMap<Character, Integer> map = new HashMap<>();
for (char c : in.toCharArray()) {
map.put(c,map.getOrDefault(c,0)+1);
}
//用上边3行就替代了下边注释中的11行
/*int index=0;
while (index < in.length()){
int count = 0;
char c = in.charAt(index);
if(map.containsKey(c)){
count = (int) map.get(c);
count++;
}
map.put(c,count);
index++;
}*/
int min = Integer.MAX_VALUE;
for (Integer value : map.values()) {
min = Math.min(min, value);
}
//用上边4行就替代了下边注释中的8行
/* int min=10000;
StringBuffer strb = new StringBuffer();
for (Map.Entry<Character, Object> entry : map.entrySet()) {
int value = (int) entry.getValue();
if(value <= min){
min=value;
}
}*/
for (char c : in.toCharArray()) {
if(map.get(c) != min){
System.out.print(c);
}
}
//用上边5行就替代了下边注释中的代码
/* for (Character c : map.keySet()) {
if(map.get(c).equals(min)){
strb.append(c);
}
}
int t=0;
char[] chars = in.toCharArray();
while(t < strb.length()){
for (int i = 0; i < chars.length; i++) {
if(chars[i] == strb.charAt(t)){
in.replace(String.valueOf(chars[i]),"");
}
}
t++;
}
System.out.println(in);*/
}
}
import java.io.*;
public class Main{
public static void main(String[] args){
shanchuLeast();
}
public static void shanchuLeast(){
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String in = null;
try {
in = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
HashMap<Character, Integer> map = new HashMap<>();
for (char c : in.toCharArray()) {
map.put(c,map.getOrDefault(c,0)+1);
}
//用上边3行就替代了下边注释中的11行
/*int index=0;
while (index < in.length()){
int count = 0;
char c = in.charAt(index);
if(map.containsKey(c)){
count = (int) map.get(c);
count++;
}
map.put(c,count);
index++;
}*/
int min = Integer.MAX_VALUE;
for (Integer value : map.values()) {
min = Math.min(min, value);
}
//用上边4行就替代了下边注释中的8行
/* int min=10000;
StringBuffer strb = new StringBuffer();
for (Map.Entry<Character, Object> entry : map.entrySet()) {
int value = (int) entry.getValue();
if(value <= min){
min=value;
}
}*/
for (char c : in.toCharArray()) {
if(map.get(c) != min){
System.out.print(c);
}
}
//用上边5行就替代了下边注释中的代码
/* for (Character c : map.keySet()) {
if(map.get(c).equals(min)){
strb.append(c);
}
}
int t=0;
char[] chars = in.toCharArray();
while(t < strb.length()){
for (int i = 0; i < chars.length; i++) {
if(chars[i] == strb.charAt(t)){
in.replace(String.valueOf(chars[i]),"");
}
}
t++;
}
System.out.println(in);*/
}
}