Python中字符串的索引对

假设我们有一个文本字符串和单词(字符串列表),我们必须找到所有索引对[i,j],以便子字符串text [i] ... text [j]在单词列表中。因此,如果字符串类似于“ ababa”,而单词数组类似于[“ aba”,“ ab”],则输出将为[[0,1],[0,2],[2,3],[2 ,, 4]]。我们可以注意到,匹配项可以重叠,“ aba”在[0,2]和[2,4]中匹配。

为了解决这个问题,我们将遵循以下步骤-

  • res:=空列表

  • 对于范围从0到字符串长度的i

    • 如果字符串的子字符串从单词i到索引i到j-

    • 将(i,j – 1)加到结果数组中

    • 对于范围i + 1到字符串长度+ 1的j

    • 返回结果

    示例(Python)

    让我们看下面的实现以更好地理解-

    class Solution(object):
       def indexPairs(self, text, words):
          result = []
          for i in range(len(text)):
             for j in range(i+1,len(text)+1):
                if text[i:j] in words:
                   result.append([i,j-1])
          return result
    ob1 = Solution()print(ob1.indexPairs("ababa",["aba","ab"]))

    输入项

    "ababa"
    ["aba","ab"]

    输出结果

    [[0,1],[0,2],[2,3],[2,4]]