2
List<Integer> list = new ArrayList<>();4
public List<Integer> splitIntoFibonacci(String num) {6
if (backtrack(num, 0)) return list;7
else return new ArrayList();10
boolean backtrack(String num, int index) {11
if (index == num.length()) return list.size() > 2;14
for (int i = index; i < num.length(); i++) {15
n = n * 10 + (num.charAt(i) - '0');16
if (n < 0) return false;17
if (list.size() < 2 || list.get(list.size() - 1) + list.get(list.size() - 2) == n) {19
if (backtrack(num, i + 1)) return true;20
list.remove(list.size() - 1);23
if (i == index && num.charAt(i) == '0') return false;