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:
- Hiệu giữa hai chỉ số liên tiếp của các ký tự là giống nhau
- 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
jtrongp:- Với mỗi
ktrongr:- Nếu
k > j:- Nếu "programmingquestion" nằm trong chuỗi con của
stừ chỉ sốjđến cuối, bước nhảyk-j→ trả vềTrue
- Nếu "programmingquestion" nằm trong chuỗi con của
- Nếu
- Với mỗi
- 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