Kotlin中是否有更优方法统计等长字符串对应位置匹配字符数?
Kotlin中替代显式遍历统计对应位置不匹配字符数的内置函数方案
当然有,可以通过Kotlin的内置函数组合实现,无需显式遍历每个字符。利用zip和count的组合就能简洁完成需求:
fun compute(l: String, r: String): Int { return l.zip(r).count { (left, right) -> left != right } }
方案说明:
l.zip(r):将两个字符串对应位置的字符两两配对,生成一个Pair<Char, Char>的序列。由于假设两个字符串长度相等,所有位置的字符都会被准确配对。count { ... }:遍历配对后的序列,统计满足left != right条件的元素数量,也就是对应位置不匹配的字符数。
符合给定条件验证:
- 满足字符串长度相等的前提:
zip在长度相等时会完整配对所有位置字符; - 严格按对应位置比较:配对逻辑就是基于字符的索引位置一一对应;
- 区分大小写:Char类型的默认相等判断是区分大小写的(例如
'A' != 'a'),完全符合需求。
内容的提问来源于stack exchange,提问作者Pragati Bhattad
相关产品推荐
相关产品推荐

