当前位置: 首页 > 知识库问答 >
问题:

使用trie进行字符串分割--时间复杂性?

葛晔
2023-03-14

给定一个非空字符串s和一个包含非空单词列表的字符串数组wordArr,确定s是否可以被分割成一个或多个字典单词的空格分隔序列。您可以假定字典不包含重复的单词。

例如,给定s=“leetcode”,wordArr=[“leet”,“code”]。

返回true,因为“leetcode”可以分段为“leetcode”。

这是正确的吗?

共有1个答案

颛孙建业
2023-03-14

您的示例确实建议了一个线性时间复杂度,但请看下面的示例:

 s = "hello" 
 wordArr = ["hell", "he", "e", "ll", "lo", "l", "h"]

现在,首先尝试“hell”,但是在下一个递归循环中,没有找到解决方案(没有“o”),因此算法需要回溯并假设“hell”不合适(没有双关语),所以尝试“he”,在下一个级别中找到“ll”,但是又失败了,因为没有“o”。同样需要回溯。现在从“h”开始,然后是“e”,然后又是一个失败:尝试“ll”没有成功,所以回溯使用“l”代替:解决方案现在可用:“h e l lo”。

所以,不,这没有O(n)个时间复杂度。

 类似资料:
  • 问题内容: 我有一个字符串如下: 我想提取数字:872226816,因此在这种情况下,我假设在第二个逗号开始读取数据之后,随后的逗号结束数据读取。 输出示例: 问题答案: 用于String.split()的 Javadoc

  • 问题内容: 我正在尝试JTextArea使用正则表达式将文本拆分为,但是,这是行不通的,我也尝试了正则表达式的许多其他组合。码: 问题答案: 这应该覆盖你: 你实际上只需要担心两个换行符(UNIX和Windows)。

  • 问题内容: 切片Python字符串的时间复杂度是多少?鉴于Python字符串是不可变的,我可以想象对它们进行切片或取决于切片的实现方式。 我需要编写一个遍历(可能很大)字符串的所有后缀的函数。我可以通过将后缀表示为整个字符串的元组和一个索引以开始从中读取字符来避免对字符串进行切片,但这很丑陋。相反,如果我天真地像这样写我的函数: … …将其时间复杂度是或,其中是? 问题答案: 简短的答案:通常是切

  • 问题内容: 说我有以下字符串: 我想将其拆分为句子,以便获得以下列表: 如您所见,我想在所有出现的字符串上拆分字符串,而不是在或的任何出现上进行拆分。在这种情况下,Python将无法正常工作,因为它将字符串的每个字符都视为一个单独的定界符,而不是将整个字符串视为一个多字符定界符。有解决此问题的简单方法吗? 问题答案: 为我工作

  • 问题内容: 每当出现“”时,我都尝试拆分字符串,例如语句test abc。然后,将每个单词中的第一个字母从头到尾移动。我将字母移动到使用原始字符串 所以我的问题是,我将如何分割字符串,然后开始在分割字符串的每个部分中移动字母? 问题答案: 您不必为此进行-transform-join;一步就能做到。 正则表达式基本上分为3组: 那么,作为替换字符串使它明显和清晰,切换和周围。 因此,应该清楚的是,

  • String 类的 split() 方法可以按指定的分割符对目标字符串进行分割,分割后的内容存放在字符串数组中。该方法主要有如下两种重载形式: 其中它们的含义如下: str 为需要分割的目标字符串。 sign 为指定的分割符,可以是任意字符串。 limit 表示分割后生成的字符串的限制个数,如果不指定,则表示不限制,直到将整个目标字符串完全分割为止。 使用分隔符注意如下: 1)“.”和“|”都是转