不可变的字符串Python?编制索引时的时间复杂度?

索米亚·阿格劳瓦尔(Somya Agrawal)

我正在尝试解决编程问题。

Given a text string and words (a list of strings), return all index pairs [i, j] so that the substring text[i]...text[j] is in the list of words. 

Example 1:

Input: text = "thestoryofleetcodeandme", words = ["story","fleet","leetcode"]
Output: [[3,7],[9,13],[10,17]]
Example 2:

Input: text = "ababa", words = ["aba","ab"]
Output: [[0,1],[0,2],[2,3],[2,4]]
Explanation: 
Notice that matches can overlap, see "aba" is found in [0,2] and [2,4].

我的功能是

def indexPairs(text: str, words: List[str]) -> List[List[int]]:
    words = set(words) # O(w)
    text = list(text) # O(n)
    ans = []
    for l in range(len(text)): # O(n)
        for r in range(l + 1, len(text) + 1): # O(n)
            w = "".join(text[l:r])
            if w in words:
                ans.append((l, r - 1))
    return ans

我的理解是,这段代码以O(n ^ 2)的时间复杂度运行。

但是,我对写的第七行感到困惑w = "".join(text[l:r])在索引数组(O(1)操作)然后将其复制到字符串(O(n)操作)时,是否将其视为O(n)操作?

那么,这段代码实际上是O(n ^ 3)吗?

非常感谢您的指导。

切普纳

尽管语法相似,但text[l:r]它是切片操作,而不是索引操作。索引是O(1),因为你查找并返回一个对的ñ项目。不过,这里的分片返回n项中的O(n),因此这是O(n)操作,导致整个函数的运行时间为O(n ** 3)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

字符串切片的时间复杂度

来自分类Dev

反转C ++字符串的时间复杂度

来自分类Dev

了解生成字符串的算法的时间复杂度

来自分类Dev

字符串分割图组合的时间复杂度

来自分类Dev

字符串置换算法的时间复杂度

来自分类Dev

Python字符串'in'运算符实现算法和时间复杂度

来自分类Dev

反转Python中的字符串和回文时间复杂度

来自分类Dev

带有for in的python字符串迭代的时间复杂度

来自分类Dev

Python中字符串连接的时间复杂度

来自分类Dev

在无序字符串集中查找字符串的时间复杂度

来自分类Dev

为什么Javascript === / ==字符串相等有时具有恒定的时间复杂度,有时却具有线性的时间复杂度?

来自分类Dev

改善给定字符串所有排列的时间复杂度

来自分类Dev

比较两个字符串的时间复杂度

来自分类Dev

具有字符串键的HashMap是否真的比Trie的时间复杂度更低?

来自分类Dev

什么是如果很长的字符串作为钥匙,快译通搜索的时间复杂度?

来自分类Dev

在C ++中修改字符串的BigO时间复杂度是多少?

来自分类Dev

将字符串插入C ++ Stl集的时间复杂度

来自分类Dev

具有字符串键的HashMap是否真的比Trie的时间复杂度更低?

来自分类Dev

将 int 转换为字符串可降低计算其长度的时间复杂度

来自分类Dev

空间复杂度O(1)存储字符串

来自分类Dev

两种不可变集合的迭代方法之间的时间复杂度

来自分类Dev

为什么将字符串插入unordered_map的时间复杂度平均为常数?

来自分类Dev

将字符串分解为有效单词的时间复杂度是多少?

来自分类Dev

程序的时间复杂度,确定两个字符串是否彼此置换

来自分类Dev

递归循环时的时间复杂度

来自分类Dev

时间复杂度

来自分类Dev

时间复杂度?

来自分类Dev

Python中子列表的时间复杂度

来自分类Dev

Python 3中的时间复杂度

Related 相关文章

  1. 1

    字符串切片的时间复杂度

  2. 2

    反转C ++字符串的时间复杂度

  3. 3

    了解生成字符串的算法的时间复杂度

  4. 4

    字符串分割图组合的时间复杂度

  5. 5

    字符串置换算法的时间复杂度

  6. 6

    Python字符串'in'运算符实现算法和时间复杂度

  7. 7

    反转Python中的字符串和回文时间复杂度

  8. 8

    带有for in的python字符串迭代的时间复杂度

  9. 9

    Python中字符串连接的时间复杂度

  10. 10

    在无序字符串集中查找字符串的时间复杂度

  11. 11

    为什么Javascript === / ==字符串相等有时具有恒定的时间复杂度,有时却具有线性的时间复杂度?

  12. 12

    改善给定字符串所有排列的时间复杂度

  13. 13

    比较两个字符串的时间复杂度

  14. 14

    具有字符串键的HashMap是否真的比Trie的时间复杂度更低?

  15. 15

    什么是如果很长的字符串作为钥匙,快译通搜索的时间复杂度?

  16. 16

    在C ++中修改字符串的BigO时间复杂度是多少?

  17. 17

    将字符串插入C ++ Stl集的时间复杂度

  18. 18

    具有字符串键的HashMap是否真的比Trie的时间复杂度更低?

  19. 19

    将 int 转换为字符串可降低计算其长度的时间复杂度

  20. 20

    空间复杂度O(1)存储字符串

  21. 21

    两种不可变集合的迭代方法之间的时间复杂度

  22. 22

    为什么将字符串插入unordered_map的时间复杂度平均为常数?

  23. 23

    将字符串分解为有效单词的时间复杂度是多少?

  24. 24

    程序的时间复杂度,确定两个字符串是否彼此置换

  25. 25

    递归循环时的时间复杂度

  26. 26

    时间复杂度

  27. 27

    时间复杂度?

  28. 28

    Python中子列表的时间复杂度

  29. 29

    Python 3中的时间复杂度

热门标签

归档