Lan*_*dei 10
如果我理解你,那么不同的Chars应该出现在同一个位置上?
那么我认为一个直截了当的定义是:
oneDifferent xs ys =
length xs == length ys &&
1 == length (filter (==False) (zipWith (==) xs ys))
Run Code Online (Sandbox Code Playgroud)
... 要么 ...
oneDifferent xs ys =
length xs == length ys &&
1 == foldr ((+) . fromEnum) 0 (zipWith (/=) xs ys) where
Run Code Online (Sandbox Code Playgroud)
递归解决方案将是
oneDifferent (x:xs) (y:ys)
| x /= y = xs == ys
| otherwise = oneDifferent xs ys
oneDifferent _ _ = False
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
141 次 |
| 最近记录: |