华为2018年4月实习笔试题1 字符串排序

类似

输入eeffffgghhhhh
输出efghefghfhfhh 

代码如下:

 1 package cn.wubowei.Demo0;
 2 
 3 import java.util.ArrayList;
 4 
 5 import java.util.Scanner;
 6 
 7 public class test1 {
 8     public static void main(String[] args) {
 9         Scanner sc = new Scanner(System.in);
10         String s = sc.next();
11         StringBuffer sbuffer=new StringBuffer();
12         ArrayList<String> e_arry = new ArrayList<String>();
13         ArrayList<String> f_arry = new ArrayList<String>();
14         ArrayList<String> g_arry = new ArrayList<String>();
15         ArrayList<String> h_arry = new ArrayList<String>();
16     
17         for (int i = 0; i < s.length(); i++) {
18             if (s.charAt(i) == 'e') {
19                 e_arry.add(String.valueOf(s.charAt(i)));
20             } else if (s.charAt(i) == 'f') {
21         
22                 f_arry.add(String.valueOf(s.charAt(i)));
23             } else if (s.charAt(i) == 'g') {
24     
25                 g_arry.add(String.valueOf(s.charAt(i)));
26             } else if (s.charAt(i) == 'h') {
27             
28                 h_arry.add(String.valueOf(s.charAt(i)));
29             }
30         }
31         int jmax = Math.max((e_arry.size() > f_arry.size() ? (e_arry.size() > g_arry.size() ? e_arry.size() :g_arry.size())
32                 : (f_arry.size() > g_arry.size() ? f_arry.size() : g_arry.size())), h_arry.size());
33 
34         for (int j = 0; j < jmax; j++) {
35             if (j < e_arry.size()) {
36                 sbuffer.append(e_arry.get(j));
37             } 
38             if (j < f_arry.size()) {
39                 sbuffer.append(f_arry.get(j));
40             } 
41             if (j < g_arry.size()) {
42                 sbuffer.append(g_arry.get(j));
43             } 
44             if (j < h_arry.size()) {
45                 sbuffer.append(h_arry.get(j));
46             }
47             
48         }
49         
50         System.out.println(sbuffer);
51     }
52 }

猜你喜欢

转载自www.cnblogs.com/ncznx/p/9161550.html