Rever uma resposta - decodificar maneiras

Estou tentando resolver uma questão e minha pergunta aqui épor que a minha solução não funciona?. Aqui está a pergunta e abaixo está a resposta.

Pergunta tirada do leetcode:http://oj.leetcode.com/problems/decode-ways/

Uma mensagem contendo letras de A-Z está sendo codificada para números usando o seguinte mapeamento:

'A' -> 1
'B' -> 2
...
'Z' -> 26

Dada uma mensagem codificada contendo dígitos, determine o número total de maneiras de decodificá-la.

Por exemplo, dada a mensagem codificada "12", ela poderia ser decodificada como "AB" (1 2) ou "L" (12). O número de maneiras de decodificar "12" é 2.

Minha solução:

O ponto com a minha solução é retroceder e multiplicar o número de opções se uma divisão for encontrada. Por divisão, quero dizer que os dígitos podem ser interpretados de duas maneiras. Por exemplo: 11 pode ser interpretado de duas maneiras 'aa' ou 'k'.

public class Solution {
    public int numDecodings(String s) {
        if (s.isEmpty() || s.charAt(0) == '0') return 0;
        int decodings = 1;
        boolean used = false; // Signifies that the prev was already use as a decimal
        for (int index = s.length()-1 ; index > 0 ; index--) {
            char curr = s.charAt(index);
            char prev = s.charAt(index-1);
            if (curr == '0') {
                if (prev != '1' && prev != '2') {
                    return 0;
                }
                index--; // Skip prev because it is part of curr
                used = false;
            } else {
                if (prev == '1' || (prev == '2' && curr <= '6')) {
                    decodings = decodings * 2;
                    if (used) {
                        decodings = decodings - 1;
                    }
                    used = true;
                } else {
                    used = false;
                }
            }
        }
        return decodings;
    }
}

A falha está na seguinte entrada:

Input:"4757562545844617494555774581341211511296816786586787755257741178599337186486723247528324612117156948"
Output: 3274568
Expected: 589824

questionAnswers(5)

yourAnswerToTheQuestion