码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode 131. Palindrome Partitioning

时间:2016-11-19 09:45:26      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:ret   ssi   span   append   key   return   style   false   []   

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

Return all possible palindrome partitioning of s.

For example, given s = "aab",
Return

[
  ["aa","b"],
  ["a","a","b"]
]

Keys: 1. 一般列出所有组合,可能性,etc 的题目都可以用DFS.

2. L8. 对于Class Solution中的全局变量x,可以用Solution.x

 

 1 class Solution(object):
 2     def partition(self, s):
 3         """
 4         :type s: str
 5         :rtype: List[List[str]]
 6         """
 7         Solution.res = []    
 8         self.DFS(s, [])
 9         return Solution.res
10                 
11     def DFS(self, s, stringlist):
12         if len(s) == 0:
13             Solution.res.append(stringlist)
14         # 如果一开始的substring是palin,把他存到stringlist中    
15         for i in range(1, len(s)+1):
16             if self.isPalin(s[:i]):
17                 self.DFS(s[i:], stringlist + [s[:i]])
18         
19             
20     def isPalin(self, s):
21         for i in range(len(s)):
22             if s[i] != s[len(s)-1-i]:
23                 return False
24         return True
25         
26         

 

 

 






Leetcode 131. Palindrome Partitioning

标签:ret   ssi   span   append   key   return   style   false   []   

原文地址:http://www.cnblogs.com/lettuan/p/6079806.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!