Hãy xem xét một chuỗi có độ dài N, chẳng hạn như Peanut Butter
với N = 13. Lưu ý rằng có N-1 cặp ký tự lân cận trong chuỗi. Đối với Peanut Butter
, cặp đầu tiên trong số 12 cặp là Pe
, cặp thứ hai là ea
, cặp cuối cùng là er
.
Khi các cặp chủ yếu là các ký tự khác nhau, chuỗi có chất lượng chunky, ví dụ chUnky
.
Khi các cặp này chủ yếu là cùng một ký tự, chuỗi có chất lượng trơn tru, ví dụ sssmmsss
.
Xác định độ chói của một chuỗi là tỷ lệ của số cặp có hai ký tự khác nhau trên tổng số cặp (N-1).
Xác định độ mịn của chuỗi là tỷ lệ của số cặp có hai ký tự giống hệt nhau trên tổng số cặp (N-1).
Ví dụ: Peanut Butter
chỉ có một cặp có các ký tự giống hệt nhau ( tt
), do đó độ mịn của nó là 1/12 hoặc 0,0833 và độ chụm của nó là 11/12 hoặc 0,9167.
Chuỗi rỗng và chuỗi chỉ có một ký tự được xác định là mịn 100% và chunky 0%.
Thử thách
Viết chương trình lấy một chuỗi có độ dài tùy ý và đưa ra tỷ lệ độ mịn hoặc độ mịn của nó dưới dạng giá trị dấu phẩy động.
- Lấy đầu vào thông qua stdin hoặc dòng lệnh, hoặc bạn có thể viết một hàm lấy một chuỗi.
- Bạn có thể giả sử chuỗi đầu vào chỉ chứa các ký tự ASCII có thể in được (và do đó là một dòng).
- In dấu phao tới thiết bị xuất chuẩn đến 4 vị trí thập phân trở lên hoặc bạn có thể chọn trả về nếu bạn đã viết một hàm. Các vị trí thập phân không truyền tải thông tin là không bắt buộc, ví dụ như
0
là tốt thay vì0.0000
. - Chọn độ chần hoặc mịn như bạn muốn. Chỉ cần chắc chắn để nói cái nào chương trình của bạn đầu ra.
Mã ngắn nhất tính bằng byte thắng.
Ví dụ
Peanut Butter
→ Chunkiness: 0.91666666666
, Smoothness: 0.08333333333
chUnky
→ Chunkiness: 1.0
, Smoothness: 0.0
sssmmsss
→ Chunkiness: 0.28571428571
, Smoothness: 0.71428571428
999
→ Chunkiness: 0.0
, Smoothness: 1.0
AA
→ Chunkiness: 0.0
, Smoothness: 1.0
Aa
→ Chunkiness: 1.0
, Smoothness: 0.0
!
→ Chunkiness: 0.0
, Smoothness: 1.0
[trống chuỗi] → Chunkiness: 0.0
, Độ mịn:1.0