Выбранные тестовые примеры не работают - PullRequest
0 голосов
/ 06 мая 2020

Это мой код проблемы

Предположим, что значение a = 1, b = 2, c = 3, ..., z = 26. Вам дан numeri c string S.
Напишите программу, возвращающую список всех возможных кодов, которые могут быть сгенерированы из данной строки.

import java.util.*;

public class solution {

    // Return a string array that contains all possible codes
    public static String[] getCode(String input){
        // Write your code here
        List<String> arrStr = new ArrayList<>();
        printAllPossibleCodes(input, "", arrStr);
        // for(String name: arrStr) {
        //     System.out.println(name);
        // }      
        String[] arr = new String[arrStr.size()];
        for(int j =0; j < arrStr.size(); j++){
          arr[j] = arrStr.get(j);
        }

        return arr; 
    }

    public static char getChar(int n){
        return (char) (n+96);
    }

    public static void printAllPossibleCodes(String input, String ans, List<String> arrStr){
        if(input.length() == 0){
            //System.out.println(ans);
            arrStr.add(ans);
            return;
        }

        int firstDigit = input.charAt(0) - '0';

        printAllPossibleCodes(input.substring(1), ans + getChar(firstDigit), arrStr);

        if(input.length() > 1){
            int firstTwoDigits = (input.charAt(0) - '0') * 10 + (input.charAt(1) - '0');
            if(firstTwoDigits >= 10 && firstTwoDigits <= 20){
                printAllPossibleCodes(input.substring(2), ans + getChar(firstTwoDigits), arrStr);
            }
        }
    }  
}

Я не могу выполнить тесты для входных данных «123» и «1123» при прохождении теста на «35411».
Где мой код ошибается?

1 Ответ

1 голос
/ 06 мая 2020

Вам требуется 10 <= firstTwoDigits <= 20 для рекурсивного вызова printAllPossibleCodes в случае two-di git. Однако, поскольку в английском алфавите sh 26 букв, требование должно быть 10 <= firstTwoDigits <= 26. Первые два тестовых примера не пройдут, потому что они содержат "23" в качестве подстроки, которая не находится между 10 и 20. Однако третий тестовый пример не содержит подстроки two-di git больше 20, но меньше 27 и, следовательно, не содержит есть эта проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...