Uriel's Corner

Research Associate @ Harvard University / Research Interests: Computer Vision, Biomedical Image Analysis, Machine Learning
posts - 0, comments - 50, trackbacks - 0, articles - 594
给出一个字符串,将其切分成若干子串,要求每个子串都是回文串,输出所有切分方法
DFS暴搜,每次从当前位置尝试加入1~剩余字符长度的子串,如果子串是回文串,则DFS到下一层,更新游标位置


 1 #131
 2 #Runtime: 553 ms (Beats 91.33%)
 3 #Memory: 32.6 MB (Beats 44.45%)
 4 
 5 class Solution(object):
 6     def partition(self, s):
 7         """
 8         :type s: str
 9         :rtype: List[List[str]]
10         """
11         self.ans = []
12         def DFS(i, ts):
13             if i == len(s):
14                 self.ans.append(ts)
15                 return
16             for j in range(i, len(s)):
17                 ss = s[i:j+1]
18                 if s[i:j+1] == ss[::-1]:
19                     DFS(j + 1, ts + [s[i:j+1]])
20             return
21         
22         DFS(0, [])
23         return self.ans

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理