131. Palindrome Partitioning

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"]
]

题意

找到一个字符串所有可以构成回文的字串.

思路

回溯法。首先按一个字符切割,如果是回文,则存入path,再对字串同样操作,最后将path存入结果res;再按两个、三个……字符进行判断。

代码

class Solution:
    def partition(self, s: str) -> List[List[str]]:
        self.Palindrome = lambda s: s == s[::-1]
        res = []
        self.helper(s, res, [])
        return res

    def helper(self, s, res, path):
        if not s:
            res.append(path)
            return
        for i in range(1, len(s) + 1):
            if self.Palindrome(s[:i]):
                self.helper(s[i:], res, path + [s[:i]])
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容