首页 > 其他分享 >140. 单词拆分 II

140. 单词拆分 II

时间:2024-12-27 15:21:34浏览次数:7  
标签:index 拆分 140 res self len II str ans

  1. 题目链接

  2. 解题思路:和139题类似,只不过要把所有的结果存起来而已

  3. 代码

    class Solution:
    
        def check(self, s: str, i: int, s2: str) -> int:
            if i + len(s2) > len(s):
                return -1
            for ch in s2:
                if ch != s[i]:
                    return -1
                i += 1
            return i
    
        # 现在在凑s[index...],能凑出来吗?
        def process(self, s: str, index: int, wordDict: List[str], ans: List[str], res: str) -> None:
            if index == len(s):
                ans.append(res)
                return 
            # 用哪个字符来凑?
            for str1 in wordDict:
                next_index = self.check(s, index, str1)
                if next_index != -1:
                    add_count = 0
                    if len(res) == 0:
                        res += str1
                        add_count = len(str1)
                    else:
                        res += ' '
                        res += str1
                        add_count = len(str1) + 1
                    self.process(s, next_index, wordDict, ans, res)
                    # 恢复现场
                    res = res[:-add_count]
    
        def wordBreak(self, s: str, wordDict: List[str]) -> List[str]:
            ans = []
            res = ""
            self.process(s, 0, wordDict, ans, res)
            return ans
    

标签:index,拆分,140,res,self,len,II,str,ans
From: https://www.cnblogs.com/ouyangxx/p/18635854

相关文章

  • 139. 单词拆分
    题目链接解题思路:暴力递归+缓存,也就是自顶向下的动态规划。process(s,index,wordDict),s[index..]后面的能被wordDict拼出来吗?使用一个for循环,尝试wordDict中的所有单词。然后加一个缓存表,就可以了代码classSolution:#s2是s[i...]的一部分吗?如果是,返回拼接到s......
  • GA/T1400视图库平台EasyCVR关于网络故障排查的思路和常用排错方法
    在当今这个高度依赖网络的时代,无论是企业还是个人,网络的稳定性和可靠性都至关重要。然而,网络故障的发生往往不可避免,它们可能会影响到我们的日常工作和沟通效率。对于经常与电脑、交换机等网络设备打交道的朋友来说,掌握一些基本的网络故障排查和处理技巧是非常必要的。本文将为大......
  • 2024-2025-1 20241401 《计算机基础与程序设计》 第十四周学习总结
    班级链接2024计算机基础与程序设计作业要求第十四周作业教材学习内容总结《C语言程序设计》第13-14章第13章文件操作二进制文件和文本文件:介绍了文件的两种基本类型,二进制文件和文本文件,以及它们的区别。文件的打开和关闭:介绍在C语言中打开和关闭文件的方式......
  • 122. 买卖股票的最佳时机 II
    题目链接解题思路:来到i天,如果i的价格大于i-1的价格,那么就可以赚到差价。所以,遍历的过程中,只要prices[i]>prices[i-1],那么就可以获利了代码classSolution:defmaxProfit(self,prices:List[int])->int:ans=0foriinrange(1,len(price......
  • 506 最长上升子序列II
    //506最长上升子序列II.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。///*http://oj.daimayuan.top/course/22/problem/647给定一个长度为n的数组a1,a2,…,an,问其中的最长上升子序列的长度。也就是说,我们要找到最大的m以及数组p1,p2,…,pm,满足1≤p1......
  • 大型项目在css开发过程中是通过什么策略拆分成多个模块的?
    在大型项目的CSS开发过程中,拆分成多个模块的策略主要包括以下几点:模块化设计:首先,根据业务逻辑和功能特点,将整个前端项目划分为若干个独立的模块。每个模块负责一个特定的功能或业务,具有清晰的边界,互不干扰。这种模块化设计有助于降低项目的复杂度,提高代码的可维护性和可复用性。......
  • # 学期(如2024-2025-1) 学号(如:20241402) 《计算机基础与程序设计》第14周学习总结
    学期(如2024-2025-1)学号(如:20241402)《计算机基础与程序设计》第14周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标<写上......
  • 路径总和 III(递归)
    给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 示例1:输入:root=[10,5,-3,3,2,null,11,3,-2,null,1]......
  • 【openGauss】Java层传参到openGauss使用拼接字符串拆分为数组方案解决in中用foreach
    【openGauss】Java层传参到openGauss使用拼接字符串拆分为数组方案解决in中用foreach拼接的32767限制一、sql格式二、使用说明三、测试四、SQL解析五、其他说明一、sql格式比如delete:DELETEFROM表名WHERE主键ID字段=any(string_to_array(#{fieldList,jdb......
  • Solution - Luogu P11405 [RMI 2020] 秘鲁 / Peru
    考虑到区间可能会有交,这个时候肯定会贪心的让这部分的权值为偏大的一部分。于是考虑把条件转化为由若干个长度\(\lek\)的不交区间覆盖。那么如果对应的区间是\([l,r]\),那么贪心的,这个区间选出来的权值就会是\(\max\limits_{i=l}^rs_i\)。那么就可以设出dp。定义\(f......