Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tìm chuỗi con "programmingquestion" trong Python

Cho chuỗi chữ thường s. Kiểm tra có thể chọn một dãy con ký tự trong s sao cho:

  1. Hiệu giữa hai chỉ số liên tiếp của các ký tự là giống nhau
  2. Các ký tự tạo thành chuỗi "programmingquestion"

Ví dụ: s = "pzrzozgzrzazmzmziznzgzqzuzezsztzizozn" → kết quả True.

Các bước giải quyết

  • p := mảng chỉ số nơi xuất hiện 'p'
  • r := mảng chỉ số nơi xuất hiện 'r'
  • Với mỗi j trong p:
    • Với mỗi k trong r:
      • Nếu k > j:
        • Nếu "programmingquestion" nằm trong chuỗi con của s từ chỉ số j đến cuối, bước nhảy k-j → trả về True
  • Trả về False

Ví dụ mã Python

class Solution:
    def solve(self, s):
        p = [i for i, c in enumerate(s) if c == "p"]
        r = [i for i, c in enumerate(s) if c == "r"]
        for j in p:
            for k in r:
                if k > j:
                    if "programmingquestion" in s[j:len(s):k-j]:
                        return True
        return False

ob = Solution()
s = "pzrzozgzrzazmzmziznzgzqzuzezsztzizozn"
print(ob.solve(s))

Đầu vào

"pzrzozgzrzazmzmziznzgzqzuzezsztzizozn"

Đầu ra

True