Ruby:创建一个符号搜索方法

时间:2014-11-03 02:27:43

标签: ruby

因此,这应该是一种方法,告诉您在每个字母(a-z)之前和之后是否有+符号。无法弄清楚它总是返回错误的原因。它应该返回true的示例是输入是+d+。如果输入为+d+d

,则应返回false
def SimpleSymbols(str)
  idx = 0
  while idx < str.length
    if str[idx].ord > 96 && str[idx].ord < 123  
      return false if str[idx - 1] != "+" || str[idx + 1] != "+"
    end

    idx += 1 
  end
  return true
end

SimpleSymbols(STDIN.gets)           

2 个答案:

答案 0 :(得分:0)

这对我来说是真实的。但是我想知道你是否因线路终端问题而陷入困境?由于gets()保持行终止,这两行在您的环境中返回什么:

SimpleSymbols("+d+d")

SimpleSymbols("+d+d\n")

?这可能会提供指向您问题的指针。

答案 1 :(得分:0)

当你启动循环并且idx设置为0时,“str [idx - 1]”将等于-1。设置语句以检查最后一个字符而不是第一个字符。

如果str [idx - 1]!=“+”||,

返回false str [idx + 1]!=“+”

所以“f ++ d +”将传递为TRUE,而它实际上是假的。

GL