【问题标题】:Verify if substring included in string when comparing away elements比较远离元素时验证字符串中是否包含子字符串
【发布时间】:2017-03-01 06:58:46
【问题描述】:

我有两个数据集

example1 = ["og", "phan"]
example2 = ["dog", "cat", "elephant", "chicken", "snake"]

确切地说,我需要返回的是一个包含来自example1的元素的新数组如果它们是example2的任何元素的子字符串 它们也应该被包含在与它们呈现时相同的顺序中。

我设法使以下代码正常工作,但新数组以不同的顺序返回元素(例如 ["phan", "og"] 而不是 ["og", "phan"]

r = []
array1.map { |x| r.push(x) if array2.join(" ").include?(x) }
r.flatten

补充:我发现include?在比较数组和数组时使用它不起作用,换句话说,它不会在单个数组元素的字符串中找到子字符串,除非它完全相同。

【问题讨论】:

  • 当我尝试你的代码时,顺序是正确的。签出并运行:repl.it/EA98/0
  • 确实,但是最后我错过了排序方法,这就是为什么它没有按正确的顺序返回数组。

标签: arrays ruby string substring


【解决方案1】:

我会做这样的事情

example1.select { |syllable| example2.any? { |word| word.include? syllable } }

【讨论】:

  • 它更像是一个子字符串而不是一个音节。
  • 是的,我不知道如何命名。
  • 它有效。感谢您。我忘了提到该函数不起作用,因为它需要按字典顺序返回,这只需调用 sort
  • 我的荣幸先生 ;)
猜你喜欢
  • 1970-01-01
  • 2014-05-27
  • 1970-01-01
  • 2012-11-25
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 2011-11-09
  • 2013-05-18
相关资源
最近更新 更多