确定自描述数字的 ruby​​ 代码 - 退出状态问题

标签 ruby algorithm exit status

我用 Ruby 编写了下面的代码片段来读取文件(该文件的每一行都有一些数字)下面的代码片段确定该数字是否为 self-describing number还是不?

如果数字是自描述数字,则下面的代码片段应生成 1 的输出;如果数字不是自描述数字,则应生成 0 的输出。

该代码似乎在我的本地计算机上运行良好,但是当我将其提交给接受这些问题解决方案的在线挑战时,它要求退出状态为 0。

所以,我在最后添加了这一行:

system(exit 0)

但是我对这个问题的解决方案仍然失败,只是因为退出状态问题。快速 bash 命令如下:

jasdeep:code$ ./self-def.rb myfile.txt ; echo $?

在输出末尾返回 0 - 这意味着程序实际上正在退出,退出状态为 0。

我的退出状态有问题吗?

#!/usr/local/bin/ruby

filename = ARGV[0]

file = File.new(filename, "r")
while (line = file.gets)
  array = line.scan(/./)
  new_array = Array.new
  array.length.times do |var|
    new_array << array.count(var.to_s).to_s
  end
  if new_array.eql? array
    puts "1"
  else 
    puts "0"
  end
end
file.close

最佳答案

默认情况下,如果脚本执行过程中没有出现异常,或者没有以特定代码退出,则应用程序的退出代码将为 0。我认为这是每种编程语言的标准。

例如,要在 Windows 上进行测试:

c:\> ruby my_script.rb
c:\> echo %errorlevel%
0

在 Unix 系统上:

$ ruby my_script.rb
$ echo $?
0

因此,如果您的脚本中没有发生意外的事情,则问题出在(正如您自己发现的)服务器端。

关于确定自描述数字的 ruby​​ 代码 - 退出状态问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6522345/

相关文章:

Ruby Hash 初始化(默认值 nil)

ruby-on-rails - 使用 before_action 过滤器的 RSPEC 测试索引操作

algorithm - 百分比负载平衡线程请求

c++ - 在 C++ 中使用循环遍历数组,程序显示 "exit status -1"?

c# - Application.Exit() 与 Application.ExitThread() 与 Environment.Exit()

ruby-on-rails - 数组操作(按特定组对一列求和,保持其他组相同)

ruby - Nokogiri 构建器在大型 XML 上的性能?

algorithm - 借助幺半群将二次时间程序转换为线性时间程序?

algorithm - 纯功能集

c - sem_post 不会优先考虑其他线程中的 sem_wait 调用