- 문자열을 다루는 문제였다. 문자열에 대한 문제에 대해서 조금 헤매는 경향이 있는 것 같다.
- 태그의 사용유무, 알파벳과 숫자, 그 외의 기호 등에 따라서 조건문을 달리 해서 겨우 해결할 수 있었다.
import sys
input = sys.stdin.readline
i = 0
start = 0
String = list(input().strip())
while i < len(String):
# 여는 괄호가 나왔다면?(=괄호 안에 들어있는 문자들의 순서는 바뀌면 안된다.)
if String[i] == "<":
i += 1
while String[i] != ">":
i += 1
i += 1
# 만약 문자나 숫자라면?
elif String[i].isalnum():
start = i
# 문자열의 길이를 넘어서지 않고 문자나 숫자가 나올 때까지
while i < len(String) and String[i].isalnum():
i += 1
# 만약 문자나 숫자가 나오지 않고 공백이 나오게 된다면 문자열을 뒤집어준다.
temp = String[start:i]
temp = temp[::-1]
# 뒤집은 문자열을 기존의 문자열과 대체하여 바꿔준다.
String[start:i] = temp
else:
i += 1
for i in String:
print(i, end="")
①. isalpha 함수
- 문자열의 구성이 모두 알파벳인지에 대해서 확인하는 함수다. 만약 문자열에 숫자나 공백이 포함되어 있으면
False
를 반환한다.
②. isdigit 함수
- 문자열의 구성이 모두 숫자인지에 대해서 확인하는 함수다.
③. isalnum 함수
- 문자열이 항상 알파벳만 있거나 숫자만 있지는 않다. 숫자와 문자가 혼용되는 경우가 훨씬 많다. 위의 함수의 기능 두 가지를 혼용해서 문자열이 알파벳 또는 숫자인지 확인하는 방법으로 이 함수가 사용된다.