1
class Solution {
2
public boolean splitString(String s) {
3
return isRemainingValid(s, null);
4
}
5

6
private boolean isRemainingValid(String s, Long previous) {
7
long current = 0;
8
for (int i = 0; i < s.length(); i++) {
9
current = current * 10 + s.charAt(i) - '0';
10
if (current >= 10000000000L) return false; // Avoid overflow
11
if (previous == null) {
12
if (isRemainingValid(s.substring(i + 1), current)) return true;
13
} else if (current == previous - 1
14
&& (i == s.length() - 1 || isRemainingValid(s.substring(i + 1), current))) return true;
15
}
16
return false;
17
}
18
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0