码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-09-22 13:13:40      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:span   esc   字母   华为机试   break   lin   describe   ring   oid   

题目描述

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

输入描述:

字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于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 }

 

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

标签:span   esc   字母   华为机试   break   lin   describe   ring   oid   

原文地址:http://www.cnblogs.com/zdtiio/p/7574228.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!