Python 문자열 처리 단어 반전 실현
'I love China!'
'China!love I ‘
두 가지 해결 방안:
프로젝트 1:이동 한 후에 문자열 을 옮 겨 다 닙 니 다.첫 번 째 가 빈 칸 이 라면 바로 넘 어 갑 니 다.첫 번 째 가 빈 칸 이 아 닌 문자 가 될 때 까지 단독 알파벳 이 라면 똑 같이 넘 어 갑 니 다.그렇지 않 으 면 이 단 어 를 반전 시 키 고 뒤로 옮 겨 다 닙 니 다.마지막 으로 reserve 방법 을 사용 하여 전체 문자열 을 뒤에서 앞으로 인쇄 합 니 다.
방안 2:re(정규 화)패 키 지 를 직접 사용 하여 반전
코드 는 다음 과 같 습 니 다:
import re
def reserve(str_list, start, end):
while start <= end:
str_list[start], str_list[end] = str_list[end], str_list[start]
end -= 1
start += 1
str = ' I love china! '
str_list = list(str)
print(str_list)
i = 0
print(len(str_list))
# list, , ,
while i < len(str_list):
if str_list[i] != ' ':
start = i
end = start + 1
print(end)
while (end < len(str_list)) and (str_list[end]!=' '):
end += 1
if end - start > 1:
reserve(str_list, start, end-1)
i = end
else:
i = end
else:
i += 1
print(str_list)
str_list.reverse()
print(''.join(str_list))
#
str_re = re.split(r'(\s+)',str)
str_re.reverse()
str_re = ''.join(str_re)
print(str_re)
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.