Giả sử chúng ta có tên công ty là chuỗi. Chúng tôi phải tìm ba ký tự phổ biến nhất từ tên công ty và hiển thị chúng bằng cách tuân theo các quy tắc sau -
- Chọn ba chữ cái thường gặp nhất
- Sắp xếp chúng theo thứ tự giảm dần
- Nếu tần số của một số ký tự giống nhau thì lấy theo thứ tự bảng chữ cái của chúng
Vì vậy, nếu đầu vào là s ="TUTORIALSPOINT", thì đầu ra sẽ là [[3, 'T'], [2, 'I'], [2, 'O']]
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- x:=một bản đồ chứa các chữ cái và tần số của các chữ cái trong s
- res:=một danh sách mới
- đối với mỗi i trong x, thực hiện
- chèn cặp (x [i], i) vào ret
- res:=res sau khi được sắp xếp dựa trên thứ tự bảng chữ cái
- res:=res sau khi được sắp xếp dựa trên tần suất theo thứ tự ngược lại
- trả lại ba mục đầu tiên từ res
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn
from collections import Counter def solve(s): x = Counter(s) res = [] for i in x: res.append([x[i], i]) res = sorted(res, key=lambda cnt: cnt[1]) res = sorted(res, key=lambda cnt: cnt[0], reverse=True) return res[:3] s = "TUTORIALSPOINT" print(solve(s))
Đầu vào
"TUTORIALSPOINT"
Đầu ra
[[3, 'T'], [2, 'I'], [2, 'O']]