这可能最终会变得非常简单,但我要求更多来帮助我学习更好的 Scala 习语(Python 人希望学习一些 scala 技巧。)
我正在做一些黑客等级问题,输入方法需要从标准输入读取行。该规范引用如下:
第一行包含测试用例 T 的数量。接下来是 T 测试用例。每个 case 包含两个整数 N 和 M。
所以在传递给脚本的输入中看起来像这样:
4
2 2
3 2
2 3
4 4
我想知道这样做的正确,惯用的方法是什么。我想到了几个:
- 使用
io.Source.stdin.readLines.zipWithIndex
,然后在 foreach 中,如果索引大于 0,则在空白处拆分并映射到(_.toInt)
- 使用相同的
readLines
函数获取输入,然后对索引进行模式匹配。 - 在空格和换行符上拆分以制作单个数字列表, map
toInt
,弹出第一个元素(问题大小),然后模 2 为我的问题函数制作参数元组。
我想知道更有经验的 scala 程序员会考虑解析这些 args 的最佳方法,其中 2 个元素行将是函数的 args,而第一个单个数字行只是要解决的问题的数量。