Maybe there are other better ways, while DFS is the one easy to get and acceptable.
Solution:
# T:O(2^n) S:O(n) class Solution: # @param s, a string # @return a list of lists of string def isPalindrome(self, s): for i in range(len(s)/2): if s[i] != s[len(s)-1-i]: return False return True def dfs(self, s, stringlist): if len(s) == 0: Solution.res.append(stringlist) for i in range(1, len(s)+1): if self.isPalindrome(s[:i]): self.dfs(s[i:], stringlist+[s[:i]]) def partition(self, s): Solution.res = [] self.dfs(s, []) return Solution.resRun Time: 244 ms
No comments:
Post a Comment