[Haskell] CodeWars|Printer Errors

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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值