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

Chương trình kiểm tra chuỗi này có thể biến thành chuỗi kia bằng dịch chuyển theo chiều kim đồng hồ trong Python


Cho hai chuỗi p, q và số r. Kiểm tra xem p có thể biến thành q bằng cách dịch chuyển một số ký tự theo chiều kim đồng hồ tối đa r lần. Ví dụ: 'c' -> 'e' cần 2 lần dịch.

Ví dụ, p = "abc", q = "ccc", r = 3, đầu ra True (a->c:2, b->c:1, tổng 3).

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

  • Nếu độ dài khác nhau, trả về False.
  • Nếu k == 0 và a != b, trả về False.
  • su := 0.
  • Duyệt i từ 0 đến độ dài:
    • v = ord(b[i]) - ord(a[i]).
    • Nếu v >= 0, su += v; ngược lại su += v + 26.
    • Nếu su > k, trả về False.
  • Trả về True.

Ví dụ minh họa

class Solution:
    def solve(self, a, b, k):
        if len(a) != len(b):
            return False
        if k == 0 and a != b:
            return False
        su = 0
        for i in range(len(a)):
            v = ord(b[i]) - ord(a[i])
            if v >= 0:
                su += v
            else:
                su += v + 26
            if su > k:
                return False
        return True

ob = Solution()
print(ob.solve("abc", "ccc", 3))

Đầu vào

"abc", "ccc", 3

Đầu ra

True