557. Reverse Words in a String III

Taesoo Kim·2023년 1월 7일
0

CrackingAlgorithm

목록 보기
9/36

557. Reverse Words in a String III

아직 투포인터라고 써져있는데도 투포인터로 접근을 못하겠다ㅋㅋㅋㅋ

class Solution:
    def reverseWords(self, s: str) -> str:
        words = list(s.split())
        result = []

        for i in words:
            result.append(i[::-1])

        return (' '.join(result))

split()함수를 이용해서 단어들을 space기준으로 나눠주고 뒤집어주며 마지막에 join으로 다시 다 합치는 방식이다.

힌트를 참고해서 투포인터로 접근해 보았다.

class Solution:
    def reverseWords(self, s: str) -> str:
        start = 0
        result = []
        for i in range(len(s)):
            if s[i] == ' ':
                result.append(s[start:i][::-1])
                start = i + 1
            
            if i == len(s) -1:
                result.append(s[start:i+1][::-1])
            
            
        return ' '.join(result)

아무래도 투포인터로 풀기 좀 억지가 있나..??
반복문 인덱스와 start가 투포인터이다. 인덱스가 빈칸을 만날때마다 그 start와 인덱스 사이의 문자를 뒤집어서 저장하고 마지막에 join으로 문자열로 만들어 리턴해준다. 문제는 마지막 단어는 빈칸이 없어서 인식을 못하는데, 그냥 인덱스가 끝에 도달했을때 나머지 문자열을 뒤집어 붙혀주는 방식으로 갔다.

profile
SailingToTheMoooon

0개의 댓글