華為OD面試
1性格測試
選積極向上的選項,注意,性格測試也會掛人,我一個朋友性格測試就沒過。
2機試 一道變成題目 1h 用例60%通過即可
任給一個數組,元素有20M,1T,300G之類的,其中1T=1000G,1G=1000M
按從小到大輸出結果
例如:輸入:3
20M
1T
300G
輸出:
20M
300G
1T
我給出的代碼如下(已通過100%用例):
[Java]
純文本查看 復制代碼
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
package
Huawei;
import
java.util.Scanner;
/**
* Created by xuzhenyu on 2020/1/5.
*/
public
class
Test {
public
static
void
main(String[] args) {
Scanner scanner =
new
Scanner(System.in);
int
n = scanner.nextInt();
String[] strings =
new
String[n];
for
(
int
i =
0
; i < n; i++) {
strings[i] = scanner.next();
}
String[] ruslutStrs = sort(strings);
for
(
int
i =
0
; i <ruslutStrs.length ; i++) {
System.out.println(ruslutStrs[i]);
}
}
private
static
String[] sort(String[] strs) {
for
(
int
i =
0
; i < strs.length -
1
; i++) {
for
(
int
j =
0
; j < strs.length - i -
1
; j++) {
// M G T
if
(compare(strs[j], strs[j +
1
])) {
String tem = strs[j];
strs[j] = strs[j+
1
];
strs[j+
1
] = tem;
}
}
}
return
strs;
}
private
static
boolean
compare(String str1, String str2){
int
str1M = turnString(str1);
int
str2M = turnString(str2);
return
str1M>str2M;
}
private
static
int
turnString(String str){
if
(
"M"
.equals(String.valueOf(str.charAt(str.length()-
1
)))){
return
Integer.parseInt(str.substring(
0
,str.length()-
1
));
}
else
if
(
"G"
.equals(String.valueOf(str.charAt(str.length()-
1
)))){
return
Integer.parseInt(str.substring(
0
,str.length()-
1
))*
1000
;
}
else
if
(
"T"
.equals(String.valueOf(str.charAt(str.length()-
1
)))){
return
Integer.parseInt(str.substring(
0
,str.length()-
1
))*
1000000
;
}
return
0
;
};
}
|
3面試
3.1.兩道編程題
(1) 任給一個數組,其中只有一個元素是單獨出現,其他是成對出現,輸出單獨的元素。
例如: 輸入: {2,2,1,1,4,4,7}
輸出:7
(2)
3.2.面試問題
(1) 說一下常見的工廠模式
(2)出現full gc定位問題的步驟
(3)mysql數據庫優化
(4)zookeeper的選舉機制
更多技術資訊可關注:itheimaGZ獲取
