華為筆試題 磁碟容量排序

2021-10-12 03:19:14 字數 2068 閱讀 2953

磁碟的容量單位有m、g、t,其關係為 1t = 1000g、1g = 1000m,如樣例所示先輸入磁碟的個數,再依次輸入磁碟的容量大小,然後按照從小到大的順序對磁碟容量進行排序並輸出。

例如:

輸入:3

20m

1t

300g

輸出:20m

300g

1t

解法:

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

"""array = [0] * 5

for i in range(0, len(array)):

print(array[i], end=" ")

print("")

for e in array:

print(e, end=" ")

print("")

array = [x+1 for x in range(10)]

print(array)

"""def

convert_ele

(e):

e_len =

len(e)

e_last = e[e_len -1]

if e_last.upper()==

"m":

return

int(e[

:e_len-1]

)elif e_last.lower()==

"g":

return

int(e[

:e_len -1]

)*1000

elif e_last.lower()==

"t":

return

int(e[

:e_len -1]

)*1000

*1000

# print("convert ele error!!!")

return

0if __name__ ==

"__main__"

:print

("input: 3 20m 1t 300g"

) array_input =

input_nr=

input

("please number: "

)for i in

range

(int

(input_nr)):

input_ele=

input

("please number {}: "

.format

(i+1))

array =[0

]*int(input_nr)

for i in

range(0

,len

(array_input)):

array[i]

= convert_ele(array_input[i]

) array_index =

[x for x in

range(0

,len

(array))]

for i in

range(0

,len

(array)):

for j in

range

(i+1

,len

(array)):

if array[j]

< array[i]

: array[i]

, array[j]

= array[j]

, array[i]

array_index[i]

, array_index[j]

= array_index[j]

, array_index[i]

for i in array_index:

print

(array_input[i]

)

華為OD機試 磁碟容量排序

今天參加華為od機試,總共有兩道機試題,每道題200分,總共400分,華為那邊要求是兩道題全過。第一道題是磁碟容量排序,其實挺簡單的,但我一直沒除錯好,導致心態直接崩了,後面第二題也沒看,看來以後要好好刷題才行。目錄磁碟的容量單位有m g t,其關係為 1t 1000g 1g 1000m,如樣例所示...

華為筆試題

int a nsize 其中隱藏著若干 0,其餘非 0整數,寫乙個函式 int func int a,int nsize 使a 把0移至後面,非 0整數移至 陣列前面並保持有序,返回值為原資料中第乙個元素為0 的下標。盡可能不使用輔助空間且考慮效率及異常問題,注釋規範且給出設計思路 include ...

華為筆試題

某軟體需要實現建議的cd key演算法,輸入3個正整數,以空格隔開,根據這3個整數生成cd key字串,輸出格式 x x x xxyy,包括16個字元,以短劃線分開,其中,cd key最後兩個yy是用於cd key的自校驗,確保cd key本身是合法的。cdkey使用的字元表23456789abcd...