https://www.codewars.com/kata/56541980fa08ab47a0000040/train/haskell
题目大意
输入一个只由小写字母构成的字符串,输出一个分数表示字符串里出现n到z的频率。
题目翻译
工厂里有个打印机可以为纸箱打印标签。对于一种箱子,打印机必须使用一些颜料,为方便起见,这些颜料用字母a到m表示。
打印机使用的这些颜料被记录在一个控制字符串里。比如一个好的控制字符串可以是”aaabbbbhaijjjm”,表示打印机会用3次a颜料,4次b颜料,1次h颜料,又一次a颜料……
有时候打印机会遇到缺少颜料、技术故障或一个不好的控制字符串(比如”aaaxbbbbyyhwawiwjjjwwm”)等问题,
你需要写一个函数printerError
,输入一个控制字符串,输出一个分数,分子为这个字符串有几个错误的字符,分母为这个字符串的长度,以表示这个字符串的出错率。注意结果不要约分。
输入的控制字符串只会包含26个小写字母。
样例
s="aaabbbbhaijjjm"
error_printer(s) => "0/14"
s="aaaxbbbbyyhwawiwjjjwwm"
error_printer(s) => "8/22"
题解
没啥好说的。。我翻译得好辛苦的!!!
我的码力见长啦(其实在Java里面写过这种程序。。)
printerError :: [Char] -> [Char]
printerError s = show (length (filter (> 'm') s)) ++ "/" ++ show (length s)