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

Chương trình kiểm tra chuỗi nhị phân có tối đa một đoạn 1 liên tiếp không bằng Python

Cho chuỗi nhị phân s (không có 0 dẫn đầu). Kiểm tra xem s có chứa tối đa một đoạn 1 liên tiếp hay không.

Ví dụ: s = "11100" → True (một đoạn "111").

Thuật toán giải quyết

  • count := -1.
  • Nếu len(s) == 1: True.
  • Duyệt ký tự i trong s:
    • Nếu i == "1" và count > -1: False (đã thấy 0 rồi lại thấy 1 → đoạn thứ 2).
    • Nếu i == "0": count += 1.
  • Trả về True.

Ví dụ triển khai

def solve(s):
    count = -1
    if len(s) == 1:
        return True
    for i in s:
        if i == "1" and count > -1:
            return False
        elif i == "0":
            count += 1
    return True

s = "11100"
print(solve(s))

Đầu vào

11100

Đầu ra

True