Peanut ButterN = 13 gibi N uzunluklu bir dize düşünün . Dizede N-1 komşu karakter çiftlerinin bulunduğuna dikkat edin. Çünkü Peanut Butter, 12 çiftin ilki Pe, ikincisi, easonuncusu er.
Çiftler çoğunlukla farklı karakterler olduğunda, dize tıknaz bir kaliteye sahiptir, örn chUnky.
Bu çiftler çoğunlukla aynı karakter olduğunda, dize yumuşak bir kaliteye sahiptir, örneğinsssmmsss .
Tıknazlığı tanımlaBir dize iki farklı karakterli çift sayısının toplam çift sayısına oranı olarak (N-1).
Pürüzsüzlüğü tanımlayınBir dize , iki aynı karaktere sahip çift sayısının toplam çift sayısına (N-1) oranı olarak .
Örneğin, Peanut Butteraynı karaktere ( tt) sahip yalnızca bir çift vardır , bu nedenle pürüzsüzlüğü 1/12 veya 0.0833 ve yığınlığı 11/12 veya 0.9167'dir.
Boş dizeler ve yalnızca bir karakter içeren dizeler% 100 düzgün ve% 0 tıknaz olarak tanımlanır.
Meydan okuma
İsteğe bağlı bir uzunlukta bir dizi olan ve yığınsallık veya pürüzsüzlük oranını kayan nokta değeri olarak veren bir program yazın.
- Stdin veya komut satırı üzerinden giriş yapın, aksi halde dize alan bir fonksiyon yazabilirsiniz.
- Giriş dizesinin yalnızca yazdırılabilir ASCII karakterleri içerdiğini (ve dolayısıyla tek satırlık olduğunu) kabul edebilirsiniz.
- Şamandırayı stdout'a 4 veya daha fazla ondalık basamağa yazdırın veya işlev yazdıysanız döndürmeyi seçebilirsiniz. Hiçbir bilgi iletmeyen ondalık basamaklara gerek yoktur, örneğin
0bunun yerine iyi0.0000. - Tercih ettiğiniz gibi öbek veya pürüzsüzlük seçin. Sadece programınızın çıktılarını söylediğinizden emin olun.
Bayt cinsinden en kısa kod kazanır.
Örnekler
Peanut Butter→ bodurluk: 0.91666666666, Pürüzsüzlük: 0.08333333333
chUnkybodurluk →: 1.0, Pürüzsüzlük: 0.0
sssmmsssbodurluk →: 0.28571428571, Pürüzsüzlük: 0.71428571428
999bodurluk →: 0.0, Pürüzsüzlük: 1.0
AAbodurluk →: 0.0, Pürüzsüzlük: 1.0
Aabodurluk →: 1.0, Pürüzsüzlük: 0.0
!bodurluk →: 0.0, Pürüzsüzlük: 1.0
bodurluk → [boş dize]: 0.0, Pürüzsüzlük:1.0
Bonus soru: Hangisini tercih edersin , tıknaz mı yoksa düzgün dizeler mi?