e267: 11192 - Group Reverse
這篇教學會示範 ZeroJudge UVa 題庫「e267: 11192 - Group Reverse」的解題過程。
題目需求
題目會提供一個數字與一串文字,數字表示文字裡的字母會「分成幾組」,知道分成幾組後,將每一組內的字串反轉,並組合字串輸出,例如「2 abcdef」會拆成兩組 ( 三個字母為一組 )「abc def」,反轉後變成「cba fed」,組合成「cbafed」輸出。
解答
首先將數字與字母字串拆開,用字串的長度除以組數,得到一組內有幾個字母,接著使用 for 迴圈遍歷每一組,將每一組的字母反轉,最後輸出就得到最終的結果。
參考:算術運算子
while True:
try:
n = input().split(' ') # 拆分輸入的文字
group = int(n[0]) # 第一個項目為數字,表示「分成幾組」
text = n[1] # 第二個項目為字串
num = int(len(text)/group) # 使用字串長度除以數字,表示「一組內有幾個字母」
for i in range(group):
output = text[i*num:(i+1)*num][::-1] # 取出每一組的字母,進行反轉
print(output, end='')
print() # 記得換行
except:
break
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~