华为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 }

 

posted @ 2018-06-09 21:59  昵称真难想  阅读(340)  评论(0编辑  收藏  举报