ruby 从 std 快速读取
从 STDIN 读取 1000000 个字符(整数)并将其拆分为一个字符整数(而不是字符串)的数组的最快方法是什么?
123456 > [1,2,3,4,5,6]
What is the fastest way to read from STDIN a number of 1000000 characters (integers), and split it into an array of one character integers (not strings) ?
123456 > [1,2,3,4,5,6]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
到目前为止,我发现的最快方法如下:-
以下是对大多数提供的解决方案进行基准测试的一些结果。这些测试使用 100,000 位数字的文件运行,但每个测试重复 10 次。
这是生成它们的代码
The quickest method I have found so far is as follows :-
Here are some results from benchmarking most of the provided solutions. These tests were run with a 100,000 digit file but with 10 reps for each test.
And here is the code that produced them
这应该相当快:
尽管一些粗略的基准测试显示这个黑客版本要快得多:
This should be reasonably fast:
although some rough benchmarking shows this hackish version is considerably faster:
这会将任何字符串拆分为整数数组,忽略任何非数字字符。如果您想从 STDIN 获取用户输入,请添加 gets:
This will split any string into an array of integers, ignoring any non-numeric characters. If you want to grab user input from STDIN add gets: