iT邦幫忙

1

[自學Python紀錄] HackerRank 新手30天挑戰-Day06

Hi there! 我是嘟嘟~受到前輩啟發,想說可以紀錄一下自己練習的過程,小女子為程式超超菜鳥,此系列非教學文,僅為個人解題筆記,可能有錯誤或未補充詳盡之處,歡迎前輩們不吝指教!也歡迎正在自學的夥伴一起討論學習~


Day 6: Let's Review

輸入格式

第一行給定一個整數T代表要被測試的數量。
後面T行代表要被測試的字串S
注意: 0被視為偶數索引值
Note: is considered to be an even index.

限制:
1 ≦ T ≦ 10
2 ≦ len(S) ≦ 10000

輸出格式

對每個字串S,印出S的偶數索引字元,後面接一個空格,再接S的奇數索引字元。

樣本輸入

2
Hacker
Rank

樣本輸出

Hce akr
Rn ak

  

原始格式

# Enter your code here. Read input from STDIN. Print output to STDOUT

  

我的解答

T = int(input()) #輸入一數字字串並轉換為整數
for i in range(T): #歷遍T次
    S = input() #輸入測試字串
    print(S[0::2] + ' ' + S[1::2]) #印出字串的偶數索引字符和奇數索引字符,並用空格隔開

5/2 補充:
用空格隔開,也可以直接用逗號方式表達:

print(S[0::2], S[1::2])

(感謝前輩補充)

輸入

2
ivvkxq
ivvkx

結果為

ivx vkq
ivx vk

  

補充:

若要擷取字串某個部分的字元,可以使用 Slicing(分割) 的方式:

1. 若要擷取字串的單一字元

字串[索引值]

假設有一字串S,若要提取最後一個字符,可以使用 S[-1]

2. 若要擷取字串某個部分作為子字串

字串[起始值:結束值:間隔值]

起始值如果不填就代表由最前方算起,結束值如果不填就代表算到最後。要注意的是結束值本身並不包含在內。(類似range)


1 則留言

1
心原一馬
iT邦研究生 5 級 ‧ 2020-05-02 11:49:45

嗨,嘟嘟:

近日每天看你發文練程式,
覺得你的新手分享文寫得很棒呢 ^^

會記筆記還有查詢參考資料做補充,
留言鼓勵一下/images/emoticon/emoticon42.gif/images/emoticon/emoticon42.gif

對了,另外分享一種寫法,
需要用「空格」隔開時,除了用字串串接寫print(S[0::2] + ' ' + S[1::2])之外,
也可以直接寫print(S[0::2], S[1::2]) 把要印的參數以「逗號」隔開

Pondudu iT邦新手 5 級 ‧ 2020-05-02 18:15:07 檢舉

小馬哥哈囉:

感謝補充!!原來用逗號印出就會隔開了! 也謝謝你的鼓勵唷! /images/emoticon/emoticon41.gif

我要留言

立即登入留言