Zerojudge j606. 造字程式

Python 解答

# 讀取輸入的三個整數,分別代表單字長度、變換次數、欲輸出的單字長度
wordLength, changeTime, resultWord = map(int, input().split(" "))

# 讀取欲變換的單字
word = list(input())

# 儲存每次變換後的單字,初始值為空串列
book = []

# 進行變換
for _ in range(changeTime):
    # 讀取每次變換的指令,並將指令中的每個數字減 1,因為程式是以 0 為起點
    Rule = list(map(int, input().split()))
    for i in range(wordLength):
        Rule[i] = Rule[i] - 1
        
    # 建立一個暫時的單字串列,長度和原單字相同,每個位置先填上空字元
    tempWord = [""]*wordLength
    
    # 將原單字依照指令進行重新排列
    for j in range(wordLength):
        tempWord[Rule[j]] = word[j]
        
    # 將新單字加入書中,並更新原單字
    book.append(tempWord)
    word = tempWord

# 印出書中指定位置的單字
for k in range(resultWord):
    w = ""
    for x in range(changeTime):
        w += book[x][k]
    print(w)