単語が逆さまになる
5204 ワード
質問する
文字列Sが与えられると、その文字列の中で単語だけを反転させたい.
まず、文字列Sは、以下のルールを遵守する.
小文字("a"-"z")、数字("0"-"9")、スペース(")、特殊文字("<"、">")のみで構成されます.
文字列の先頭と末尾はスペースではありません.
「<」と「>」は文字列内で交互に現れ、「<」が先に現れる.また、2文字の個数は同じです.
ラベルは「<」で始まり、「>」で終わる長さが3より大きい部分文字列で、「<」と「>」の間にはアルファベット小文字とスペースしかありません.単語は小文字と数字からなる部分文字列で、連続する2つの単語は1つのスペースで区切られています.ラベルは単語ではなく、ラベルと単語の間にスペースがありません.
入力
最初の行は文字列Sを与える.Sの長さは100000以下である.
しゅつりょく
1行目に文字列Sの単語を逆さに出力します.
に答える
银色3だから可笑しい.
文字列の問題なので、おかしく見えます.
全然知らない.ほほほ
文字列に関連する関数を一緒に配置し、忘れないようにします(コメント)
文字列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)) # 리스트를 빈칸없이 출력되게만들기
Reference
この問題について(単語が逆さまになる), 我々は、より多くの情報をここで見つけました https://velog.io/@bbnerino/17413-단어뒤집기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol