鱼C论坛

 找回密码
 立即注册
查看: 2745|回复: 0

[学习笔记] Leetcode 131. Palindrome Partitioning

[复制链接]
发表于 2020-9-23 09:27:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Given a string s, partition s such that every substring of the partition is a palindrome.

Return all possible palindrome partitioning of s.

Example:

Input: "aab"
Output:
[
  ["aa","b"],
  ["a","a","b"]
]
class Solution:
    def partition(self, s: str) -> List[List[str]]:
        results = []
        
        def palindrome(left, right):
            while left < right:
                if s[left] != s[right]:
                    return False
                left += 1
                right -= 1
            return True
        
        def dfs(start, result):
            if start >= len(s):
                results.append(result[:])
                return
            
            for i in range(start, len(s)):
                if palindrome(start, i):
                    result.append(s[start: i + 1])
                    dfs(i + 1, result)
                    result.pop(len(result) - 1)
        
        dfs(0, [])
        return results

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-1 11:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表