관리 메뉴

솜씨좋은장씨

[leetCode] 557. Reverse Words in a String III (Python) 본문

Programming/코딩 1일 1문제

[leetCode] 557. Reverse Words in a String III (Python)

솜씨좋은장씨 2020. 3. 27. 20:39
728x90
반응형

Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.

 

Example 1:

Input: "Let's take LeetCode contest"
Output: "s'teL ekat edoCteeL tsetnoc"

Note: In the string, each word is separated by single space and there will not be any extra space in the string.

 

Solution 1

class Solution:
    def reverseWords(self, s: str) -> str:
        split_s = s.split()
        
        answer = []
        
        for i in range(len(split_s)):
            reverse_str = list(reversed(split_s[i]))
            answer.append(''.join(reverse_str))
        return ' '.join(answer)

Solution 1 풀이

split으로 문자열을 공백기준으로 나누어주고

각각의 분절된 문자열을 reversed 를 사용하여 반대로 뒤집은 다음

다시 그 list를 join을 활용하여 문자열로 바꾸어 주었습니다.

효율성이 매우 좋지 않았습니다.

 

Solution 2

class Solution:
    def reverseWords(self, s: str) -> str:
        split_s = s.split()
        
        for i in range(len(split_s)):
            split_s[i] = split_s[i][::-1]
        return ' '.join(split_s)

 

Solution 2 풀이

이에 reversed를 사용하지 않고 string[::-1]의 방법으로 문자열을 뒤집는 방법을 사용하여 보았습니다.

확실히 더 빠른 성능을 보여주는 것을 확인할 수 있었습니다.

 

 

SOMJANG/CODINGTEST_PRACTICE

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

 

Comments