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

Độ dài tối đa của các số 1 liên tiếp trong một chuỗi nhị phân bằng Python bằng cách sử dụng hàm Bản đồ

Đôi khi, khi xử lý biểu diễn nhị phân của các số, chúng ta có thể cần phải tìm xem có bao nhiêu chữ số 1 liên tục hiện diện trong số đó. Bài viết này chỉ ra hai cách để chúng tôi có thể tìm ra điều đó.

Sử dụng Split và Map

Hàm chia trong python có thể được sử dụng để chia chuỗi đã cho thành nhiều chuỗi. Chúng tôi chia nó theo số không và hàm bản đồ được sử dụng để tìm độ dài tối đa giữa các phần được tạo.

Ví dụ

data = '11110000111110000011111010101010101011111111'
def Max_len_cons_1(data):
print ("Maximum Number of consecutive one's: ",max(map(len,data.split('0'))) )
Max_len_cons_1(data)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Maximum Number of consecutive one's: 8

Sử dụng biểu thức chính quy

Mô-đun lại trong python cũng có thể được sử dụng để đếm số lượng tối đa của 1 lần liên tiếp. Ở đây, chúng tôi tìm thấy mẫu 1+ biểu thị một hoặc nhiều số 1 hiện tại. Sau đó, tìm độ dài tối đa trong số các mẫu đó.

Ví dụ

data = '11110000111110010011'
import re
the_ones = re.findall(r"1+", data)
print("The blocks of one's: ",the_ones)
print("Maximum Number of consecutive one's =", len(max(the_ones, key=len)))

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

The blocks of one's: ['1111', '11111', '1', '11']
Maximum Number of consecutive one's = 5