鱼C论坛

 找回密码
 立即注册
查看: 3208|回复: 0

[学习笔记] Leetcode 131. Palindrome Partitioning

[复制链接]
发表于 2020-9-23 09:27:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

  1. class Solution:
  2.     def partition(self, s: str) -> List[List[str]]:
  3.         results = []
  4.         
  5.         def palindrome(left, right):
  6.             while left < right:
  7.                 if s[left] != s[right]:
  8.                     return False
  9.                 left += 1
  10.                 right -= 1
  11.             return True
  12.         
  13.         def dfs(start, result):
  14.             if start >= len(s):
  15.                 results.append(result[:])
  16.                 return
  17.             
  18.             for i in range(start, len(s)):
  19.                 if palindrome(start, i):
  20.                     result.append(s[start: i + 1])
  21.                     dfs(i + 1, result)
  22.                     result.pop(len(result) - 1)
  23.         
  24.         dfs(0, [])
  25.         return results
复制代码

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-13 01:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表