Python có các thư viện tuyệt vời để thao tác dữ liệu. Chúng ta có thể bắt gặp nhu cầu tìm tích lớn nhất của hai số liên tiếp là một phần của chuỗi lớn. Trong bài viết này, chúng ta sẽ xem các cách để đạt được điều đó.
Với zip và max
Chúng tôi chuyển đổi chuỗi thành một danh sách. Sau đó, tạo các cặp từ các phần tử liên tiếp với sự trợ giúp của việc cắt. Áp dụng *, chúng tôi nhân cặp và sau đó lấy giá trị lớn nhất từ kết quả của phép nhân từ mỗi cặp.
Ví dụ
Astring = '5238521' # Given string print("Given String : ",Astring) # Convert to list Astring = list(Astring) print("String converted to list:\n",Astring) # Using max() res = max(int(a) * int(b) for a, b in zip(Astring, Astring[1:])) # Result print("The maximum consecutive product is : " ,res)
Đầu ra
Chạy đoạn mã trên cho chúng ta kết quả sau -
Given String : 5238521 String converted to list: ['5', '2', '3', '8', '5', '2', '1'] The maximum consecutive product is : 40
Với bản đồ và tối đa
Chúng tôi thực hiện một cách tiếp cận tương tự như trên. Nhưng chúng tôi sử dụng hàm bản đồ để tiếp tục tạo ra các cặp số nguyên liên tiếp. Sau đó, sử dụng hàm mul từ mô-đun toán tử để nhân các số trong cặp này. Cuối cùng, hãy áp dụng hàm max để nhận giá trị lớn nhất của kết quả.
Ví dụ
from operator import mul Astring = '5238521' # Given string print("Given String : ",Astring) # Convert to list Astring = list(Astring) print("String converted to list:\n",Astring) # Using max() res = max(map(mul, map(int, Astring), map(int, Astring[1:]))) # Result print("The maximum consecutive product is : " ,res)
Đầu ra
Chạy đoạn mã trên cho chúng ta kết quả sau -
Given String : 5238521 String converted to list: ['5', '2', '3', '8', '5', '2', '1'] The maximum consecutive product is : 40