華為校園招聘上機(jī)筆試題 撲克牌大小(python)
本文為大家分享了華為校園招聘上機(jī)筆試題,供大家參考,具體內(nèi)容如下
[編程題] 撲克牌大小
時(shí)間限制:10秒
空間限制:131072K
撲克牌游戲大家應(yīng)該都比較熟悉了,一副牌由54張組成,含3~A,2各4張,小王1張,大王1張。
牌面從小到大用如下字符和字符串表示(其中,小寫joker表示小王,大寫JOKER表示大王):)
3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER
輸入兩手牌,兩手牌之間用“-”連接,每手牌的每張牌以空格分隔,“-”兩邊沒有空格,如:4 4 4 4-joker JOKER
請比較兩手牌大小,輸出較大的牌,如果不存在比較關(guān)系則輸出ERROR
基本規(guī)則:
(1)輸入每手牌可能是個(gè)子,對(duì)子,順子(連續(xù)5張),三個(gè),炸彈(四個(gè))和對(duì)王中的一種,不存在其他情況,
由輸入保證兩手牌都是合法的,順子已經(jīng)從小到大排列;
(2)除了炸彈和對(duì)王可以和所有牌比較之外,其他類型的牌只能跟相同類型的存在比較關(guān)系
(如,對(duì)子跟對(duì)子比較,三個(gè)跟三個(gè)比較),不考慮拆牌情況(如:將對(duì)子拆分成個(gè)子)
(3)大小規(guī)則跟大家平時(shí)了解的常見規(guī)則相同,個(gè)子,對(duì)子,三個(gè)比較牌面大?。豁樧颖容^最小牌大小;
炸彈大于前面所有的牌,炸彈之間比較牌面大??;對(duì)王是最大的牌;
(4)輸入的兩手牌不會(huì)出現(xiàn)相等的情況。
答案提示:
(1)除了炸彈和對(duì)王之外,其他必須同類型比較。
(2)輸入已經(jīng)保證合法性,不用檢查輸入是否是合法的牌。
(3)輸入的順子已經(jīng)經(jīng)過從小到大排序,因此不用再排序了.
輸入描述:
輸入兩手牌,兩手牌之間用“-”連接,每手牌的每張牌以空格分隔,“-”兩邊沒有空格,如4 4 4 4-joker JOKER。
輸出描述:
輸出兩手牌中較大的那手,不含連接符,撲克牌順序不變,仍以空格隔開;如果不存在比較關(guān)系則輸出ERROR。
輸入例子1:
4 4 4 4-joker JOKER
輸出例子1:
joker JOKER
'''
'''
解題思路:仔細(xì)小心
華為筆試的題目解題思路都很簡單,一眼就能望到頭,不需要太多思考,只要仔細(xì)小心的分析清楚每一種情況,
就都能做出來
'''
'''
代碼運(yùn)行結(jié)果:
答案正確:恭喜!您提交的程序通過了所有的測試用例
'''
def judge_token(cs):
length = len(cs)
if length == 1:
return 'single'
elif length == 3:
return 'triple'
elif length == 4:
return 'bomb'
elif length == 5:
return 'seq'
elif length == 2:
if cs == ['joker', 'JOKER']:
return 'j-bomb'
else:
return 'double'
card_dict = {'3': 1, '4': 2, '5': 3, '6': 4, '7': 5, '8': 6, '9': 7, '10': 8, 'J': 9, 'Q': 10, 'K': 11,
'A': 12, '2': 13, 'joker': 14, 'JOKER': 15}
while True:
try:
cards = input().split('-')
cards_1 = cards[0].split()
cards_2 = cards[1].split()
cards_1_token = judge_token(cards_1)
cards_2_token = judge_token(cards_2)
if cards_1_token != 'bomb' and cards_1_token != 'j-bomb' and cards_2_token != 'bomb' and cards_2_token != 'j-bomb':
if cards_1_token == cards_2_token:
if card_dict[cards_1[0]] > card_dict[cards_2[0]]:
print(' '.join(cards_1))
else:
print(' '.join(cards_2))
else:
print('ERROR')
elif (cards_1_token == 'bomb' or cards_1_token == 'j-bomb') and (cards_2_token != 'bomb' and cards_2_token != 'j-bomb'):
print(' '.join(cards_1))
elif (cards_1_token != 'bomb' and cards_1_token != 'j-bomb') and (cards_2_token == 'bomb' or cards_2_token == 'j-bomb'):
print(' '.join(cards_2))
elif cards_1_token == 'bomb' and cards_2_token == 'j-bomb':
print(' '.join(cards_2))
elif cards_1_token == 'j-bomb' and cards_2_token == 'bomb':
print(' '.join(cards_1))
else:
if card_dict[cards_1[0]] > card_dict[cards_2[0]]:
print(' '.join(cards_1))
else:
print(' '.join(cards_2))
except:
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python編程利用Numpy和PIL庫將圖片轉(zhuǎn)化為手繪
這篇文章主要介紹了Python編程利用Numpy和PIL庫將一張圖片轉(zhuǎn)化為手繪風(fēng)格,文中附含詳細(xì)實(shí)現(xiàn)的示例代碼,有需要的朋友可以借鑒參考下2021-09-09
centos 自動(dòng)運(yùn)行python腳本和配置 Python 定時(shí)任務(wù)
這篇文章主要介紹了centos 自動(dòng)運(yùn)行python腳本和配置 Python 定時(shí)任務(wù),文章內(nèi)容介紹詳細(xì),需要的小伙伴可以參考一下,希望對(duì)你有所幫助2022-03-03
window環(huán)境pip切換國內(nèi)源(pip安裝異常緩慢的問題)
這篇文章主要介紹了window環(huán)境pip切換國內(nèi)源(pip安裝異常緩慢的問題),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
jupyter .ipynb轉(zhuǎn).py的實(shí)現(xiàn)操作
這篇文章主要介紹了jupyter .ipynb轉(zhuǎn).py的實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03

