2
public boolean splitString(String s) {3
return isRemainingValid(s, null);6
private boolean isRemainingValid(String s, Long previous) {8
for (int i = 0; i < s.length(); i++) {9
current = current * 10 + s.charAt(i) - '0';10
if (current >= 10000000000L) return false; // Avoid overflow11
if (previous == null) {12
if (isRemainingValid(s.substring(i + 1), current)) return true;13
} else if (current == previous - 114
&& (i == s.length() - 1 || isRemainingValid(s.substring(i + 1), current))) return true;