Computer >> Máy Tính >  >> Lập trình >> Python

Các cặp chỉ mục của một chuỗi trong Python


Giả sử chúng ta có một chuỗi văn bản và các từ (một danh sách các chuỗi), chúng ta phải tìm tất cả các cặp chỉ mục [i, j] sao cho chuỗi con là văn bản [i] ... [j] nằm trong danh sách các từ. Vì vậy, nếu chuỗi giống như “ababa” và mảng từ giống như [“aba”, “ab”], thì đầu ra sẽ là [[0,1], [0,2], [2,3], [2 ,4]]. Một điều chúng ta có thể nhận thấy, rằng các kết quả phù hợp có thể trùng lặp, “aba” được so khớp trong [0,2] và [2,4].

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • res:=một danh sách trống
  • cho tôi trong phạm vi từ 0 đến một độ dài của chuỗi
    • cho j trong phạm vi i + 1 đến độ dài của chuỗi + 1
      • if chuỗi con của chuỗi từ chỉ mục i đến j trong các từ -
        • thêm (i, j - 1) vào mảng kết quả
  • trả về kết quả

Ví dụ (Python)

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

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"]))

Đầu vào

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

Đầu ra

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