当前位置: 首页 > news >正文

网站开发团队做网站 参考文献

网站开发团队,做网站 参考文献,东莞建筑,网页设计与网站建设pdf文章目录 一、题目二、思路三、代码 一、题目 二、思路 具体例子和步骤:假设 s "aab",步骤如下: 初始状态: s "aab"path []res [] 第一层递归(外层循环): path []检…

文章目录

  • 一、题目
  • 二、思路
  • 三、代码

一、题目

在这里插入图片描述

二、思路

具体例子和步骤:假设 s = "aab",步骤如下:

  1. 初始状态

    • s = "aab"
    • path = []
    • res = []
  2. 第一层递归(外层循环):

    • path = []
    • 检查 s[:1]a(是回文):
      • 递归调用 dfs("ab", ["a"], res)
  3. 第二层递归

    • s = "ab"
    • path = ["a"]
    • 检查 s[:1]a(是回文):
      • 递归调用 dfs("b", ["a", "a"], res)
  4. 第三层递归

    • s = "b"
    • path = ["a", "a"]
    • 检查 s[:1]b(是回文):
      • 递归调用 dfs("", ["a", "a", "b"], res)
  5. 终止条件

    • s = ""
    • path = ["a", "a", "b"]
    • res 加入 path,即 res = [["a", "a", "b"]]
  6. 回溯并尝试新的分割

    • 回溯至 s = "ab"path = ["a"]
    • 检查 s[:2]ab(不是回文),跳过。
    • 回溯至初始状态,s = "aab"path = []
    • 检查 s[:2]aa(是回文):
      • 递归调用 dfs("b", ["aa"], res)
  7. 新的递归路径

    • s = "b"
    • path = ["aa"]
    • 检查 s[:1]b(是回文):
      • 递归调用 dfs("", ["aa", "b"], res)
  8. 终止条件

    • s = ""
    • path = ["aa", "b"]
    • res 加入 path,即 res = [["a", "a", "b"], ["aa", "b"]]
Initial call: dfs("aab", [])
|
|-- dfs("ab", ["a"])
|   |
|   |-- dfs("b", ["a", "a"])
|   |   |
|   |   |-- dfs("", ["a", "a", "b"]) --> Add to result [["a", "a", "b"]]
|   |
|   `-- dfs("b", ["a"]) -- "ab" 不是回文,跳过
|
`-- dfs("b", ["aa"])||-- dfs("", ["aa", "b"]) --> Add to result [["a", "a", "b"], ["aa", "b"]]

代码逻辑:

  • for i in range(1, len(s) + 1):循环从1开始到 len(s),尝试每一个可能的分割位置。
  • if self.isP(s[:i]):检查从0到 i 的子串 s[:i] 是否是回文。
  • self.dfs(s[i:], path + [s[:i]], res):如果 s[:i] 是回文,将 s[:i] 添加到路径 path 中,递归处理剩余的字符串 s[i:]

每次递归调用会传递新的字符串 s 和更新后的路径 path(这个路径即当前方案的所有字符组合列表),直到字符串 s 为空,此时将路径 path 添加到结果列表 res 中。这样,通过递归和回溯的方法,我们可以找到所有可能的分割方案。递归调用部分:

for i in range(1, len(s) + 1):if self.isP(s[:i]):self.dfs(s[i:], path + [s[:i]], res)
  • s[:i]:表示从字符串 s 的第1个字符到第 i 个字符形成的子串。
  • path + [s[:i]]:表示将当前找到的回文子串 s[:i] 添加到当前的 path 中形成一个新的列表。

三、代码

class Solution(object):def partition(self, s):""":type s: str:rtype: List[List[str]]"""res = []self.dfs(s, [], res)return res def dfs(self, s, path, res):"""s: 剩余的字符串path: 当前分割方案res: 保存所有分割方案的结果"""if not s:res.append(path)return for i in range(1, len(s) + 1):if self.isP(s[:i]):self.dfs(s[i:], path+[s[:i]], res)def isP(self, s):return s == s[::-1]
http://www.yayakq.cn/news/441899/

相关文章:

  • 外国网站的浏览器如何建设网络营销渠道
  • 手机端网站设计页面设计布局
  • 公司网站开发制作公司自己做网站到哪里去接广告
  • 网站设计能出来什么汽车零件销售网站开发
  • 站长推荐网址入口自动跳转招工 最新招聘信息
  • 大学生做兼职上什么网站好哈尔滨网站优化如何
  • 浙江省网站建设wordpress 设置图片大小
  • 网站建设一个月多少钱投资者关系互动平台
  • 人社网站和微信平台建设方案房源网站建设
  • 100m的光纤可以做网站吗网站建设需要用到什么
  • 论述网站建设的主要步骤wordpress文章主图
  • 阿里巴巴做网站申请网站名字
  • 网站需求定制表单常州微信网站建设
  • 教学网站开发代码兰州新区建设局网站地址
  • 专业制作网站排名优化公司哪家好
  • 泗县网站建设与推广培训北京营销推广网站建设
  • 绍兴企业网站开发seo排名是啥
  • 一般网站开发公司wordpress授权协议
  • 成都金牛网站建设公司河北城乡建设学校官方网站
  • 网站建设 问答品牌网站建设特色
  • 做团购的家居网站有哪些做网站能用ai好还是ps
  • 论坛网站源码下载国外常用视频网站tenor怎么设置
  • 长页在线制作网站河北邢台重大新闻
  • 手机网站是怎么制作的如何做区块链网站
  • sql网站开发免费做简历网站有哪些
  • 网站开发工程师的要求有质感的wordpress主题
  • 做长海报的网站网络设计的内容是什么
  • 国内设计好的网站案例制作公司网站的流程
  • 网站建设运营公司排行wordpress配置文件数据库
  • 青岛做网站的公司哪个比较好广安哪里做网站