【问题标题】:count duplicates between two arrays or strings计算两个数组或字符串之间的重复项
【发布时间】:2018-02-24 22:18:31
【问题描述】:
a = 'rrgb'
b = 'rggb'

我有这两个字符串。我正在尝试计算正确的重复数量。结果应该是三个,b有3个正确的字母。但是我在网上找到的所有内容都返回 4,因为从技术上讲它们是相同的字母。最好的方法是什么?

【问题讨论】:

  • 很不清楚您所说的“重复”和“正确”是什么意思以及您的计数方式。
  • 我同意,这个问题的措辞非常含糊。如果a = "xyz"b = "zyx",那么你的结果应该是1 还是3?如果a = "XYZ"b = "xyz",那么你的结果应该是0 还是3?如果a = "x y z"b = "x y z",那么你的结果应该是3 还是5?如果a = "xxy"b = "xxy",那么你的结果应该是2 还是3?您需要比“计算正确的重复字母的正确数量......跨度>
  • 当您发布问题时,最好不时查看以防万一——如这里——读者要求澄清。

标签: arrays ruby string


【解决方案1】:
a = 'rrgb'
b = 'rggb'

p a.chars.zip(b.chars).count{|c1, c2| c1 == c2} # => 3

【讨论】:

  • 看到OP的回答,您似乎已经正确解释了这个问题。
  • 赞成zip 防止O(N²),但chars 会丢弃组合的变音符号(并且通常会在'bär''bar' 上搞砸结果。
  • @mudasobwa 我想为了防止这种情况,字符串应该是 unicode_normalized 事先。
猜你喜欢
  • 2015-07-08
  • 1970-01-01
  • 1970-01-01
  • 2014-06-28
  • 1970-01-01
  • 1970-01-01
  • 2016-05-25
  • 2013-02-25
相关资源
最近更新 更多