此算法题 一开始拿到 就是在苦恼如何实现在没有给定输入长度又要在输入完成后跳出输入循环,一开始用的是while()配合Scanner的hasNext()方法但是不知道咋回事 输入完成跳不出循环…
之后发现 汉字放在矩阵中 其行列相等 输入完第一行 检测长度-1 即为剩下的输入次数配合for循环即可进行判断
但是在测试运行程序时发现输出形式是输入完一行出一行结果 不满足题设输入完整矩阵后一次性给出相应结果(所以一直在想怎样满足题设)
奇怪的是 当我把题设的整个案例矩阵复制直接粘贴到运行程序中 其结果却是一次性给出相应结果
代码示例:
import java.util.Scanner;
public class algorithm {
static int N;
static boolean flag ;
static int sum=0;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String s = new String();
s = in.next();
N = s.length();
System.out.print(N + " ");
if (3 <= N && N <= 200) {
for (int j = 0; j < N; j++) {
if (s.charAt(j) == '0' && !flag || s.charAt(j) == '1' && flag) {
sum++;
} else {
System.out.print(sum + " ");
sum = 1;
flag = !flag;
}
}
for (int i = 0; i < N - 1; i++) {
s = in.next();
for (int j = 0; j < N; j++) {
if (s.charAt(j) == '0' && !flag || s.charAt(j) == '1' && flag) {
sum++;
} else {
System.out.print(sum + " ");
sum = 1;
flag = !flag;
}
}
}
System.out.println(sum);
}
}
}