zoukankan      html  css  js  c++  java
  • 删除字符串中出现次数最少的字符(考虑特殊字符与不考虑特殊字符解法)

    实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。
    注意每个输入文件有多组输入,即多个字符串用回车隔开
    输出:删除字符串中出现次数最少的字符后的字符串。

    解法一:
    考虑特殊字符,万能代码

    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);
            }
        }
    }
    
    
  • 相关阅读:
    DiskCatalogMaker for Mac常见问题解答
    macOS应用程序如果在打开时提示崩溃,该怎么解决
    使用Marmoset Hexels for Mac如何创建一个图库
    Redis Desktop Manager for Mac怎样在连接树中搜索
    java学习笔记IO之File类
    java学习笔记之集合家族2
    mongoDB之数据类型
    mongoDB之集合操作
    mongoDB之数据库操作
    Bootstrap 网格系统
  • 原文地址:https://www.cnblogs.com/InternetJava/p/14350248.html
Copyright © 2011-2022 走看看