華為2019校招筆試(9月5號) 1 26進製加法

2021-08-27 08:09:29 字數 1967 閱讀 7385

2大整數相加,每位是小寫字母,』a』是0,『z』是25。求加法的和

輸入

z

bc

輸出
cb
解法: 思路:

ord():返回對應的 ascii 數值

reverse():反向列表裡的元素

chr():將as碼轉成字元

26進製加法的過程 :

從末尾開始,按位將兩數相加,如果和超過26,就需要進製,將和減去26的結果就是該位的結果。

進製要留到下一位的計算裡。

可以看到這是乙個遞迴的過程。因為上乙個進製要留到下乙個位相加裡。

所以首先,要滿足按位加,要將兩個字串補充成乙個長度。

十進位制我們是補0,這裡是26進製,我們補』a』。

設定函式來計算按位加的過程,輸入的兩位的字元,輸出是相加的結果和進製。這裡用ord將字串轉成ascii碼再模擬計算的過程。

然後對兩個補完長度的字串,進行按位加,將每乙個按位加的結果存在list裡, 最後將list的結果反向,並聯合起來輸出字串,就是相加的結果。

# #以下只用於測試,輸出應該是saeat***srdssvtady

# input1 = 'tttzzzasasazzz'

# input2 = 'sadzzzsdssdasdsadz'

#該函式描述了 按位加的26進製加法,輸入是兩個位的字元,輸出是 加完的結果 和 進製

def bitadd(bit1,bit2,next):

#求出a的asc碼,把bit1,bit2轉成asc碼減去a碼的值就能得到26進製裡該字元代表的數

#例如 b應該是1,和a的asc碼正好相差1。

asclow = ord('a')

asc1=ord(bit1)-asclow

asc2=ord(bit2)-asclow

#按位相加後,注意一定還要加進制 ,總和超過26則需要進製1,否則進製0

result_bit=asc1 + asc2 +next

temp=result_bit-26

if(temp>=0):

#進製為1

next=1

#result_bit的結果等於兩位之和與26相減後剩下的值

result_bit=temp

else:

next=0

#result_bit不變

#輸出結果是26以內的數,要把它轉成字元的asc碼,一定要記得加'a'的asc碼值

return result_bit+asclow,next

input1=str(input())

input2=str(input())

#首先按長度,將兩個數補成位數相同的長度,注意高位用'a'來當0來補全。

len1=len(input1)

len2=len(input2)

if(len1>len2):

input2='a'

*(len1-len2)+input2

maxlen=len1

else:

input1='a'

*(len2-len1)+input1

maxlen = len2

#初始化進製的值

next=0

#list用來裝按位相加留下的結果

rlist=

for i in range(maxlen-1,-1,-1):

result_bit, next=bitadd(input1[i],input2[i],next)

#把按位加的數字結果轉成字元表示,chr(ascii碼)

#注意,運算到最後一位相加時,如果進製值是1,則要額外新增一位數字1,1對應的字元是b。

if(next==1):

#注意rlist裡裝的字元順序是倒序,所以要翻轉後再輸出字串

rlist.reverse()

print(''.join(rlist))

華為2019校招筆試

示例2 示例 常用的邏輯運算有and 表示為 or 表示為 not 表示為 他們的邏輯是 1 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 0 0 1 1 0其中,他們的優先關係為 not and or 例如 a b c 實際是 a b c a b c d ...

華為2023年4月10日春招筆試題解

給定乙個字串,字串包含數字 大小寫字母以及括號 包括大括號 中括號和小括號 括號可以巢狀,即括號裡面可以出現數字和括號。按照如下的規則對字串進行展開,不需要考慮括號成對不匹配問題,用例保證括號匹配,同時用例保證每個數字後面都有括號,不用考慮數字後面沒有括號的這種情況,即2a2 b 這種情況不用考慮。...

水水微軟蘇州校招筆試 1月17日 題解

a.koch snowflake 找規律.觀察k2,k3可以得出在每個ki中mod 4為2,3的將是當前最新出來的顏色,所以只需要不斷的往前迭代直到當前標號迭代後所對應標號是某個ki中mod 4為2,3的.include include include include include include...