単語が逆さまになる


質問する
文字列Sが与えられると、その文字列の中で単語だけを反転させたい.
まず、文字列Sは、以下のルールを遵守する.
小文字("a"-"z")、数字("0"-"9")、スペース(")、特殊文字("<"、">")のみで構成されます.
文字列の先頭と末尾はスペースではありません.
「<」と「>」は文字列内で交互に現れ、「<」が先に現れる.また、2文字の個数は同じです.
ラベルは「<」で始まり、「>」で終わる長さが3より大きい部分文字列で、「<」と「>」の間にはアルファベット小文字とスペースしかありません.単語は小文字と数字からなる部分文字列で、連続する2つの単語は1つのスペースで区切られています.ラベルは単語ではなく、ラベルと単語の間にスペースがありません.
入力
最初の行は文字列Sを与える.Sの長さは100000以下である.
しゅつりょく
1行目に文字列Sの単語を逆さに出力します.
に答える
银色3だから可笑しい.
文字列の問題なので、おかしく見えます.
全然知らない.ほほほ
文字列に関連する関数を一緒に配置し、忘れないようにします(コメント)
import sys
sys.stdin = open('input.txt')

sentence = list(input())
s = 0
start= 0
while s < len(sentence): # 문자열 끝까지 하나씩 확인하는데
                        # 무슨 경우든 한자리씩은 이동한다.
    if sentence[s] =="<":   # 만약 괄호 시작이면
        s+=1
        while sentence[s]!=">": # 닫히는게 아닐때 진행되게한다.
            s+=1                # => 닫히는게 나올때까지
        s+=1                    # 만일 닫혔다면 한자리 이동

    elif sentence[s].isalnum() : # isalnum() =
                                 # 문자열이 숫자 영어 한글로 되어있으면 true
        start = s                # 문자열이 시작이 된다면 첫 값을 저장하기
        while s< len(sentence) and  sentence[s].isalnum(): # 끝나던지 띄워쓰기 나올떄까지
            s +=1
        new = sentence[start:s] # 범위지정해주고
        new.reverse()           # reverse = 거꾸로 만드는 함수
        sentence[start:s] = new # 원래 자리에 new 넣어주기

    else: # 공백이면
        s+=1
print("".join(sentence))        # 리스트를 빈칸없이 출력되게만들기