首页 > 解决方案 > 识别包含列表中每个字符的字符串

问题描述

我有话"dinosaur", "dosimetry", and "moist"。我在想我有几十万字的情况。我想返回包含"s", "i", "o", "m"字符串中任何位置的所有单词。该函数应该返回"dosimetry", "moist"

有没有一种有效的方法来做到这一点,还是我必须迭代和检查?

标签: rubystringsearch

解决方案


只为体验

使用正则表达式积极前瞻

words = %w(dinosaur dosimetry moist)

words.select { |word| word.match?(/(?=.*m)(?=.*s)(?=.*i)(?=.*o).*/) }

#=> ["dosimetry", "moist"]

为了提高搜索速度,我按照英文字母频率排列了正则表达式中的字母。


推荐阅读