📄 3536173_ac_266ms_5424k.java
字号:
import java.util.*;
public class Main {
private Scanner in;
private String [] matrix;
private int w, h;
private String [][] best;
public static void main(String [] args) {
new Main().run();
}
private void run() {
in = new Scanner(System.in);
while (true) {
w = in.nextInt();
h = in.nextInt();
if (w == 0 && h == 0) {
break;
}
matrix = new String [h];
best = new String [h][w];
for (int i = 0; i < h; i++) {
matrix[i] = in.next();
Arrays.fill(best[i], "");
}
String ans = "";
for (int i = h - 1; i >= 0; i--) {
for (int j = w - 1; j >= 0; j--) {
if (Character.isDigit(matrix[i].charAt(j))) {
best[i][j] = matrix[i].charAt(j) + max(getString(i, j + 1), getString(i + 1, j));
ans = max(ans, f(best[i][j]));
}
}
}
System.out.println(ans);
}
}
private String f(String str) {
int i;
for (i = 0; i < str.length(); i++) {
if (str.charAt(i) != '0') {
break;
}
}
if (str.length() == i) {
return "0";
}
return str.substring(i);
}
private String getString(int i, int j) {
if (i >= h || j >= w || !Character.isDigit(matrix[i].charAt(j))) {
return "";
}
return best[i][j];
}
private String max(String a, String b) {
int la = a.length();
int lb = b.length();
if (la != lb) {
return la < lb ? b : a;
}
return a.compareTo(b) > 0 ? a : b;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -