试图检查两个字符串是否是彼此的排列

时间:2014-10-19 02:18:40

标签: ruby

我正在尝试实现这个函数来检查两个字符串是否是彼此的排列。代码本身很简单。

def permutation(a, b)
  if a.length != b.length
    return False
  end
  a  = a.chars.sort.join
  b =  b.chars.sort.join
  return a == b
end

a = "abcedff"
b = "acbedf"
puts (permutation(a, b).to_s)

但是,当我尝试在终端上运行此文件时,我不断收到错误消息

  

permutation.rb:3:permutation': uninitialized constant False (NameError) from permutation.rb:13:in'

我不明白这个的原因。

2 个答案:

答案 0 :(得分:1)

Ruby不是Python。您想要truefalse,而不是TrueFalse

答案 1 :(得分:1)

不要过分复杂化。您需要做的就是比较两个字符数组。例如:

def permutation a, b
    a.chars.sort == b.chars.sort
end

鉴于您的语料库已发布,这会产生:

a = "abcedff"
b = "acbedf"

permutation a, b
#=> false

permutation a, a
#=> true