gpt4 book ai didi

ruby - `input_data' : undefined method `chomp' for nil:NilClass (NoMethodError)

转载 作者:数据小太阳 更新时间:2023-10-29 08:18:46 24 4
gpt4 key购买 nike

大家好,我遇到了以下问题:

输入:
2
阿巴巴
一个

输出:
11
3

解释:
对于第一种情况,字符串的后缀是“ababaa”、“babaa”、“abaa”、“baa”、“aa”和“a”。这些字符串中的每一个与字符串“ababaa”的相似度分别为 6,0,3,0,1,1。因此答案是 6 + 0 + 3 + 0 + 1 + 1 = 11。

对于第二种情况,答案是 2 + 1 = 3。

这部分有效,但我的代码应该通过的一些测试没有通过。

这是我的代码

def input_data
#STDIN.flush
tries = gets.chomp
end

strings=[];
tries = input_data until (tries =~ /^[1-9]$/)
tries = tries.to_i
strings << input_data until (strings.count == tries)

strings.map do |x|
values = 0
current = x.chars.to_a
(0..x.length-1).map do |possition|
current_suffix = x[possition..-1].chars.to_a
(0..current_suffix.length-1).map do |number|
if (current_suffix[0] != current[0])
break
end

if ( current_suffix[number] == current[number] )
values = values+1
end
end
end

if (values != 0)
puts values
end
end

有什么解决办法吗??

最佳答案

gets 返回 nil,不能被 chomp 编辑。因此,您需要确保在调用 chomp 之前处理的是实际字符串。 ruby 中的一个常见习惯用法是使用 ||= 运算符仅在变量为 nil 时才设置该变量。所以你会写:

tries = gets        # get input
tries ||= '' # set to empty string if nil
tries.chomp! # remove trailing newline

关于ruby - `input_data' : undefined method `chomp' for nil:NilClass (NoMethodError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13668101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com