例如:
makeSame ["ab", "bad", "mammy"]
,则输出为["ab***","bad**", "mammy"]
为每个遗漏的字符获取一个'*'
makeSame:: [String] -> [String]
makeSame m = let f = length (last (sort m))
in
(\x ->replicate length x x ++'*') m
但是甚至没有编译。
答案 0 :(得分:3)
要获得最大长度,您可以:
maxLength list = maximum $ map length list
使用replicate
复制字符(示例replicate 3 '*'
给出"***"
)。
您需要做的就是结合这两种方法。
要确定丢失的字符数,您需要从最大长度中减去字符串的长度(length "somestring"
给您)。
答案 1 :(得分:3)
这是@talex提供的具有辅助功能的解决方案
longest :: [String] -> Int
longest m = maximum $ map length m
makeSame :: [String] -> [String]
makeSame m = map (\ x -> x ++ replicate (longest m- length x) '*') m