본문 바로가기
컴퓨터공학 & 정보통신/알고리즘 문제 풀이

[LeetCode] 131. Palindrome Partitioning

by TaeGyeong Lee 2023. 3. 23.

접근

  • 평이한 백트래킹 문제
  • pailndrome을 체크하는 방법을 어렵지 않으나 파이썬 문법을 제대로 이해하지 못하여 시간이 많이 걸렸다.
  • 내가 알고리즘을 푸는 것인지 파이썬 문법을 공부하는 것인지..

 

솔루션

class Solution:
    def partition(self, s: str) -> List[List[str]]:
        answer = []
        s_length = len(s)

        def backtrack(answer_list, index):
            if index == s_length:
                answer.append(answer_list)
                return
            
            for i in range(index, s_length):
                current_str = s[index:i+1]
                if current_str == current_str[::-1]:
                    backtrack(answer_list + [current_str], i+1)
        
        backtrack([], 0)
        return answer