zoukankan      html  css  js  c++  java
  • 【leetcode】131. Palindrome Partitioning

    题目如下:

    解题思路:一般来说,对于题目要求返回所有可能的结果的集合的情况,对算法时间复杂度的要求都不会太复杂。本题直接穷举遍历即可。

    代码如下:

    class Solution(object):
        def isPalindrom(self,s):
            return s == s[::-1]def isFull(self,vl,s):
            r = ''
            for i in vl:
                r += i
            return r == s
    
        def partition(self, s):
            """
            :type s: str
            :rtype: List[List[str]]
            """
            queue = []
            subs = ''
            for i, v in enumerate(s):
                subs += v
                if self.isPalindrom(subs) == True:
                    queue.append(([subs],i))
            res = []
            while len(queue) > 0:
                vl,inx = queue.pop(0)
                if self.isFull(vl,s) == True:
                    res.append(vl)
                    continue
                subs = ''
                for i in range(inx+1,len(s)):
                    subs += s[i]
                    if self.isPalindrom(subs) == True:
                        tl = vl[:]
                        tl.append(subs)
                        queue.append((tl,i))
    
            return res
  • 相关阅读:
    Tomcat安装和使用
    mysql5.7.18安装配置
    Memcached安装与使用
    Redis
    nginx的安装与使用
    python操作mysql
    Paramiko模块
    协程与异步IO
    Queue与生产者消费者模型
    C# 生成验证码 方法二
  • 原文地址:https://www.cnblogs.com/seyjs/p/9401697.html
Copyright © 2011-2022 走看看