บางครั้งเมื่อต้องจัดการกับการแทนค่าเลขฐานสองของตัวเลข เราอาจจำเป็นต้องค้นหาว่ามีเลข 1 ที่ต่อเนื่องกันกี่ตัวในตัวเลข บทความนี้แสดงวิธีค้นหาข้อมูลดังกล่าว 2 วิธี
การใช้ Split และ Map
ฟังก์ชัน split ใน python สามารถใช้เพื่อแยกสตริงที่กำหนดออกเป็นหลายสตริงได้ เราแบ่งมันด้วยศูนย์และใช้ฟังก์ชันแผนที่เพื่อค้นหาความยาวสูงสุดระหว่างการแยกที่สร้างขึ้น
ตัวอย่าง
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)
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Maximum Number of consecutive one's: 8
การใช้นิพจน์ทั่วไป
โมดูล re ใน python สามารถใช้เพื่อนับจำนวนสูงสุดของ 1 ติดต่อกัน ที่นี่เราพบรูปแบบของ 1+ ซึ่งระบุจำนวน 1 หรือมากกว่าที่มีอยู่ แล้วหาความยาวสูงสุดของรูปแบบเหล่านั้น
ตัวอย่าง
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)))
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
The blocks of one's: ['1111', '11111', '1', '11'] Maximum Number of consecutive one's = 5