import os
s=os.read(0,10000).lower()
n=s.count
a=sorted(filter(str.isalnum,set(s)),key=n)[:10]
for c in a:print c+': %%%ii'%len(`n(a[-1])`)%n(c)
Попробуйте онлайн!
Полная программа, принимающая на вход строку. tio link использует полифилы для s/[a-z]/$h{lc($&)}++/eig;printf"$_:%9d$/",$h{$_}for(sort{$h{$a}<=>$h{$b}}keys%h)[0..9]
and $_
.
Сокращен и протестирован с помощью Bubbler.
-12 байт от Адама.
Не работает на tio из-за проблем с import Char
import Data.List
z=filter
t=show
l=length
k x=[(l$z(==m)x,m)|m<-x]
s z=[b:':':take(1+(maximum$map(l.t.fst)z)-l(t a))(repeat ' ')++t a++"\n"|(a,b)<-z]
main=interact$concat.s.take 10.sort.nub.k.map toLower.z isAlphaNum
.(Now works, thanks to Adám's help)
Объяснение
c=[];t=128;while(t--)c[t]=[0,t];i=prompt().toLowerCase();for(n=0;n<i.length;x=i.charCodeAt(n++),c[x][0]+=x>96&&x<123);for(n=i=0,c=c.sort(function(a,b){return(a[0]-b[0])});n<10;i++)if(c[i][0]>0){console.log(String.fromCharCode(c[i][1])+": "+(" "+c[i][0]).slice(-2));n++}
||answer||
К, 60
import sys
t=sys.stdin.read().lower()
f={}
for c in t:
if c.isalnum():f[c]=f.get(c,0)+1
s=lambda x:x[1]
h=sorted(f.items(),key=s)[:10]
for n in h:print n[0]+': '+`n[1]`.rjust(len(`max(h,s)[1]`))
||answer||
Python, 206 199 195 символов
{(-:|/#:'f)$f:10#$(!x)[i]!r i:<r:. x:#:'=_x@&x in,/.Q`a`A`n}
Несомненно, есть много возможностей для совершенствования, но вот моя первая попытка. Выдает идентичный результат для предоставленного тестового примера.
206 -> 199: удалены ненужные аргументы новой строки и ключевого слова.
199 -> 195: итеритемы()