写这个:
N = args[1].split("\\s+").length;
使用命令行参数,如: ,这是否会像我将字符串解析为字符串数组echo "A B C D E F G H I" | java Subset 3
那样消耗类似的内存?"A B C D E F G H I"
.split()
我的评估指出(作为挑战)学生(我)可以尝试从 N 个字符串(上面的 N = 9,A 到 I)输入中随机均匀地显示 K 个字符串(上述 cmd 行中的 K = 3),同时消耗与 K 成比例的内存,而不是 N。所以这基本上就是我想要做的。
编辑: mvp 的回答很有帮助。现在更好地理解问题。
但我觉得我应该补充一点,我只允许使用这个:
private static Scanner scanner = new Scanner(new BufferedInputStream(System.in), charsetName);
我不能自己使用这Scanner
门课,或者BufferedReader
就此而言。鉴于此限制,我有点不确定如何进行。