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

Chương trình để kiểm tra chúng ta có thể nhận được một cặp chữ số và bất kỳ số bộ ba chữ số nào hay không trong Python

Giả sử chúng ta có một chuỗi số s. Chúng ta phải kiểm tra xem có sự sắp xếp nào đó mà chúng ta có thể có một cặp ký tự giống nhau hay không và phần còn lại của chuỗi tạo thành bất kỳ số bộ ba nào của cùng một ký tự.

Vì vậy, nếu đầu vào là s =​​"21133123", thì đầu ra sẽ là True, vì có hai số 2 để tạo thành "22" là cặp và "111", "333" là hai bộ ba.

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

  • d:=danh sách chứa tần số của từng phần tử có trong s

  • với mỗi k trong d, làm

    • d [k]:=d [k] - 2

    • nếu d [i] mod 3 bằng 0 với mọi i trong d, thì

      • trả về True

    • d [k]:=d [k] + 2

  • trả về Sai

Ví dụ

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

from collections import Counter
def solve(s):
   d = Counter(s)
   for k in d:
      d[k] -= 2
      if all(d[i] % 3 == 0 for i in d):
         return True
      d[k] += 2
   return False

s = "21133123"
print(solve(s))

Đầu vào

"21133123"

Đầu ra

True