您的位置:首页 > 其它

[Haskell] CodeWars|Printer Errors

2017-10-03 10:27 435 查看
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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: