当前位置: 首页 > 知识库问答 >
问题:

所选测试用例失败

公西毅
2023-03-14

这是我的问题代码

假设a=1,b=2,c=3,...,z=26的值。您将得到一个数字字符串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);
            }
        }
    }  
}

共有1个答案

翟默
2023-03-14

您需要10<=firstTwoDigits<=20,以便在两位数的情况下递归调用PrintallPossibleCodes。但是,由于英语字母表中有26个字母,所以要求应该是10<=firstTwoDigits<=26。您的前两个测试用例失败,因为它们包含“23”作为一个子字符串,该子字符串不在10和20之间。然而,第三个测试用例不包含大于20但小于27的两位数子字符串,因此不存在此问题。

 类似资料:
  • 我有一个简单的测试用例: FileManager中的函数删除 /myDir下的所有文件,然后再次保留文件。 如上所述,我有一个。运行时,我可以按以下顺序查看所有打印: 但是,测试在失败。有两件事我不明白: > 我不明白,它在中失败了,为什么我仍然可以看到打印的,听起来就像是失败了,它没有停止运行,而是继续运行下一个测试?JUnit测试用例中的场景背后发生了什么?? 我不明白的另一件事是为什么tes

  • 我试图在JUnit5测试环境中使用JUnit4。事实上,我已经升级了我的pom来使用更高版本的MOckito和POwerMock。到目前为止,所有测试都基于JUnit4。我将平台和vintage依赖项添加到我的pom.xml中。 更早的pom。xml依赖关系

  • 下面TestNG执行测试用例会导致失败。错误-org.openqa.selenium.WebDriverExcture:在处理命令时发生了未知的服务器端错误。原始错误:无法将命令代理到远程服务器。原始错误:错误:套接字挂断(警告:服务器没有提供任何堆栈跟踪信息)命令持续时间或超时: 56毫秒

  • 我在测试用例中使用这三种方法,但有时脚本仍然无法等待元素的可见性,或者即使元素在运行时显示,它仍然失败。但当我重新运行它们时,它们会单独通过 例如,我有98个测试用例,第一次运行20个会失败,但是当我重新运行20个测试用例时,它们通过了

  • 我的JUnit测试用例失败了。行出现错误 mockito.When(BlogEntryService.Find(1L)).ThenReturn(entry); 故障跟踪是 java.lang.NullPointerException位于com.sample.controller.BlogentryControllerTest.GetExistingBlogEntry(BlogentryContro

  • 问题内容: 我有一个包含多个模块的项目。当所有测试通过时,Maven测试将全部运行。 当第一个模块中的测试失败时,maven将不会继续进行下一个项目。我在Surefire设置中将testFailureIgnore设置为true,但这无济于事。 我如何使Maven运行所有测试? 问题答案: 我刚刚找到了“ -fae”参数,该参数使Maven运行所有测试并且不会因失败而停止。