华为机试:删除字符串中出现次数最少的字符

Posted zdtiio

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为机试:删除字符串中出现次数最少的字符相关的知识,希望对你有一定的参考价值。

题目描述

实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。 

输入描述:

字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。

输出描述:

删除字符串中出现次数最少的字符后的字符串。

示例1

输入

abcdd

输出

dd

 

Java:用两个数组来记录各个字符的个数,一个用来排序找出最小的字符出现次数,一个用来决定是否输出当前字符。

 1 import java.util.Arrays;
 2 import java.util.Scanner;
 3 
 4 public class Main {
 5     
 6     public static void main(String[] args) {
 7         Scanner sc=new Scanner(System.in);
 8         while(sc.hasNext()){
 9             String s = sc.nextLine();
10             int[] state = new int[26];
11             int[] temp_state = new int[26];
12             for(int i = 0; i < s.length(); i++){
13                 state[s.charAt(i)-‘a‘]++;
14                 temp_state[s.charAt(i)-‘a‘]++;
15             }
16             Arrays.sort(temp_state);
17             int num = 0;
18             for(int i = 0; i < temp_state.length; i++){
19                 if(temp_state[i]!=0){
20                     num = temp_state[i];
21                     break;
22                 }
23             }
24             for(int i = 0; i < s.length(); i++){
25                 if(state[s.charAt(i)-‘a‘]!=num){
26                     System.out.print(s.charAt(i));
27                 }
28             }
29             System.out.println();
30         }
31         sc.close();
32     }
33     
34 }

 

以上是关于华为机试:删除字符串中出现次数最少的字符的主要内容,如果未能解决你的问题,请参考以下文章

华为机试

华为机试HJ23:删除字符串中出现次数最少的字符

华为OD机试真题Python实现删除最少字符真题+解题思路+代码(2022&2023)

华为OD机试 - 删除最少字符(JavaScript) | 机试题+算法思路+考点+代码解析 2023

华为python机试题目:整数与IP地址间的转换图片整理字串的连接最长路径查找提取不重复的整数字符串合并处理字符串最后一个单词的长度删除字符串中出现次数最少的字符

华为机试题 HJ23删除字符串中出现次数最少的字符