删除字符串中出现次数最少的字符(考虑特殊字符与不考虑特殊字符解法)
实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
注意每个输入文件有多组输入,即多个字符串用回车隔开
输出:删除字符串中出现次数最少的字符后的字符串。
解法一:
考虑特殊字符,万能代码
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.*;
public class Main11 {
public static void main(String[] args) throws FileNotFoundException {
Scanner in = new Scanner(new FileInputStream("D:\\JavaData\\tmp/input.txt"));
//Scanner in = new Scanner(System.in);
while (in.hasNextLine()) {
String input = in.nextLine();
//去重字符
Set<Character> set = new LinkedHashSet<>();
for(int i=0;i<input.length();i++){
set.add(input.charAt(i));
}
Character[] characters = set.toArray(new Character[0]); //set集合转换为字符数组,存放字符
int[] charCounts = new int[characters.length]; //存放characters字符数组对应的字符出现的次数
for(int i=0;i<characters.length;i++){
for(int j=0;j<input.length();j++){
if(characters[i]==input.charAt(j)){
charCounts[i]++;
}
}
}
StringBuilder stringBuilder = new StringBuilder(); //保存需要删除字符
int[] copyCharCounts = Arrays.copyOf(charCounts, charCounts.length);
Arrays.sort(copyCharCounts); //找到出现最少次数的字符
int min = copyCharCounts[0];
for(int i=0;i<charCounts.length;i++){
if(min==charCounts[i]){
stringBuilder.append(characters[i]);
}
}
String index = stringBuilder.toString();
StringBuilder outPut = new StringBuilder();
for(int i=0;i<input.length();i++){
if(!index.contains(String.valueOf(input.charAt(i))))outPut.append(input.charAt(i));//重新组装
}
System.out.println(outPut.toString());
}
}
}
解法二:
字符串只包含小写英文字母, 不考虑非法输入
import java.io.*;
public class Main{
public static void main(String []args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = null;
while((s=br.readLine()) != null){
int []count = new int[26];
int min = Integer.MAX_VALUE;
for(char c : s.toCharArray()){
count[c - 'a']++;
min = Math.min(min,count[c-'a']);
}
String ret = "";
for(char c : s.toCharArray()){
if(count[c - 'a'] != min){
ret += c + "";
}
}
System.out.println(ret);
}
}
}
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步