【发布时间】:2017-03-30 06:25:57
【问题描述】:
下面的问题有一个字符列表和列数作为输入。列数不是一个常数,可以随每个输入而变化。 除了最后一行之外,输出的所有行都应该被完全占用。
list: a b c d e f g
colums: 3
Wrong:
a b c
d e f
g
Wrong:
a d g
b e
c f
Correct:
a d f
b e g
c
我在下面尝试过:
public static void printPatern(List<Character> list, int cols) {
for (int i = 0; i < cols; i++) {
for (int j = i; j < list.size(); j += cols) {
System.out.print(list.get(j));
}
System.out.println();
}
}
它给出的输出为(这是错误的):
a d g
b e
c f
我正在尝试使用一种算法来打印正确的输出。我想知道解决这个问题的不同方法是什么。时间和空间的复杂性无关紧要。我尝试的上述方法也是错误的,因为它以列作为参数,但实际上是作为行数。
仅供参考:这不是家庭作业问题。
【问题讨论】:
-
您的要求输出没有任何意义?
-
行号是否恒定为 3?
-
不。这是列数,它可能会有所不同。
-
好的,这是一个棘手的算法。会尽快回复您
-
@Dhiraj 看来真的不明白这个问题。需要根据列表的长度和所需的列数计算行数。