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