有同学可以分享下今天华为机试第一题代码吗?
如标题...一道都没写出来,第一道很快写完了,结果卡在80%用例上,一直调到考试结束。谁能分享下吗?我想死的明白点....已经绝望到要放弃自己了
感谢回复我的小哥哥们,我平静下来了,也希望帮我看下代码吧。
package com.chen.huawei;
import java.util.*;
public class testt {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
String ss1 = in.nextLine();
String[] strs = ss1.split(" ");
int num = Integer.valueOf(strs[0]);
String[] ss = new String[strs.length - 1];
for(int i = 0;i <ss.length;i++){
ss[i] = strs[i+1];
}
//处理
List<String> list = split(ss);
//输出
Collections.sort(list);
if(list.size() == 0){
System.exit(0);
}
System.out.print(list.get(0)+" ");
for(int i = 1;i <list.size();i++){
String s = list.get(i );
System.out.println(s);
}
}
}
private static List<String> split(String[] ss) {
List<String> list = new ArrayList<>();
for(String s:ss) {
StringBuilder builder = new StringBuilder();
int len = s.length();
if (len < 8) {
builder.append(s);
for (int i = 1; i <= 8 - len; i++) {
builder.append('0');
}
list.add(builder.toString());
} else if (len == 8) {
builder.append(builder.toString());
} else {
//字符串长度大于8,循环处理
while (s.length() % 8 != 0) {
s = s+'0';
}
for (int i = 0; i < s.length(); i = i + 8) {
String s1 = s.substring(i, i + 8);
list.add(s1);
}
}
}
return list;
}
}
#华为##笔试题目#