You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby字谜(Anagrams)程序开发求助:如何筛选正确变位词列表

变位词筛选程序实现思路与代码修正

1. 核心判断逻辑:识别变位词的关键

两个单词属于变位词的核心判定标准:

  • 统一转换为相同大小写(比如全小写),避免大小写差异干扰判断
  • 将单词拆分为单个字符、排序后,若结果完全一致,则为变位词
  • 可选规则:排除与原单词完全相同的候选(比如输入hello,候选里的hello不算变位词,可根据需求调整)

2. 修正输入处理的问题

你当前代码里,potential_anagrams = gets.chomp只能获取一行字符串,无法直接得到数组。需要让用户用逗号分隔候选词,再转成数组:

puts 'Enter word'
word_input = gets.chomp.downcase # 统一转小写,消除大小写影响
puts 'Enter anagram list (separated by commas)'
potential_anagrams = gets.chomp.split(',').map(&:strip) # 拆分字符串,同时去除每个候选词的前后空格

3. 编写变位词判断方法

写一个简洁的判断方法,封装核心逻辑:

def is_anagram?(original, candidate)
  # 排序后对比字母组成,同时排除原单词本身
  original.chars.sort == candidate.downcase.chars.sort && original != candidate.downcase
end

如果需求允许原单词算变位词,直接去掉&& original != candidate.downcase即可。

4. 筛选并格式化输出结果

遍历候选列表,筛选符合条件的变位词,再按要求输出:

correct_anagrams = potential_anagrams.select { |anagram| is_anagram?(word_input, anagram) }

if correct_anagrams.empty?
  puts 'No correct anagrams found.'
else
  puts "correct anagrams are: #{correct_anagrams.join(', ')}"
end

完整整合代码

把所有部分组合起来,就能实现需求:

def is_anagram?(original, candidate)
  original.downcase.chars.sort == candidate.downcase.chars.sort && original.downcase != candidate.downcase
end

puts 'Enter word'
word_input = gets.chomp
puts 'Enter anagram list (separated by commas)'
potential_anagrams = gets.chomp.split(',').map(&:strip)

correct_anagrams = potential_anagrams.select { |anagram| is_anagram?(word_input, anagram) }

puts "correct anagrams are: #{correct_anagrams.join(', ')}"

匹配你期望的方法调用形式

如果想直接用is_anagram? word: 'hello', anagrams: [...]这种关键字参数调用方式,修改方法如下:

def is_anagram?(word:, anagrams:)
  original = word.downcase
  correct = anagrams.select do |candidate|
    candidate.downcase.chars.sort == original.chars.sort && candidate.downcase != original
  end
  "correct anagrams are: #{correct.join(', ')}"
end

# 调用示例
puts is_anagram?(word: 'hello', anagrams: ['helo', 'elloh', 'heelo', 'llohe'])
# 输出:correct anagrams are: elloh, llohe

内容的提问来源于stack exchange,提问作者Precious

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 01:10:28