Java华为机试历年题库,获取方式见
:
更多华为机试题点击👉👉【闲鱼】https://m.tb.cn/h.5zQ8X5H?tk=VBwSWpn16Mq MF7997 「我在闲鱼发布了【京985硕亲自用过整理的,自己以275分过了华为机试,已经帮】」
点击链接直接打开
【编程题目 |100分】工号排序【2021 考试题】
时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++262144K,其他语言524288K
64bit IO Format:%lld
本题可使用本地IDE编码,不能使用本地已有代码,无跳出限制,编码后请点击”保存并调试“按钮进行代码提交。
■ 题目描述
【工号排序】
给出的字符串结构是前边是字母、后边为数字,例如 wew0145,要求给出一组数据,按照后边的数字从小到大排序。
输入
wr0068,lt01,qhy0027828,gh20425256,xj0033258,zmj00505562
输出
lt01,wr0068,qhy0027828,xj0033258,zmj00505562,gh20425256
说明
按照报名名单中员工工号中的数字部分升序排序输出。
备注:输入名单中工号中数字都是唯一的。
思路:使用TreeMap,按照key进行排序。
Java代码:
public class GongHaoSort {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String[] sp = scanner.nextLine().split(",");
int n = sp.length;
String[] strs = new String[n];
for (int i = 0; i < n; i++) {
strs[i] = sp[i];
}
func(strs);
}
private static void func(String[] strs) {
TreeMap<Integer, String> map = new TreeMap<>();
int n = strs.length;
for (int i = 0; i < n; i++) {
String str = strs[i];
int num = 0;
for (int j = 0; j < str.length(); j++) {
if (str.charAt(j) >= '0' && str.charAt(j) <= '9') {
num = Integer.parseInt(str.substring(j));
break;
}
}
map.put(num, str);
}
int i = 0;
for (String value : map.values()) {
if (i != n - 1) System.out.print(value + ",");
else System.out.print(value);
}
}
}
Java华为机试历年题库,获取方式见
:
整理不易,关注和收藏后拿走!
欢迎专注我的公众号:AdaCoding