[python]白準17413-単語2を訳す


Overview


BOJ 17413翻单词2 Python回答
分類:String(文字列)

質問ページ


https://www.acmicpc.net/problem/17413

プールコード

from sys import stdin


def main():
    x = stdin.readline().rstrip()

    res = ''
    stack = []
    i = 0
    while i < len(x):
        if x[i] == '<':
            if stack:
                res += ''.join(stack[::-1])
                stack = []
            while x[i] != '>':
                res += x[i]
                i += 1
            res += x[i]

        elif x[i] == ' ':
            res += ''.join(stack[::-1])
            stack = []
            res += ' '
        else:
            stack.append(x[i])

        i += 1

    if stack:
        res += ''.join(stack[::-1])

    print(res)


if __name__ == "__main__":
    main()
文字列内の各文字を検索するときは、タグでない場合はスタックに配置し、スペースまたは<<に遭遇した場合はスタック内の要素を結果値に配置します.また、タグ内の文字はスタックに入れず、結果値に追加されます.
テキストナビゲーションが完了したら、スタックに値がある場合は、最後にスタック要素を結果値に挿入し、結果を出力します.