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

codingbat中的前缀再加解决方案

唐沈义
2023-03-14

我目前正在做codingbat问题的乐趣,我刚刚做了这个问题。

“给定一个字符串,考虑由字符串的前N个字符组成的前缀字符串。该前缀字符串是否出现在字符串的其他地方?假设字符串不是空的,并且N在1..str.length()的范围内。前缀再次(”abxyabc“,1)→真前缀再次(”abxyabc“,2)→真前缀再次(”abxyabc“,3)→假”http://codingbat.com/prob/p136417

我的解决方案是:

public boolean prefixAgain(String str, int n) {
    return (str.replaceFirst(Character.toString(str.charAt(n-1)),"").contains(Character.toString(str.charAt(n-1))));
}
prefixAgain("abcccccbx", 2);

共有1个答案

章睿
2023-03-14
public boolean prefixAgain(String str, int n)    
    String prefix = str.substring(0, n);
    int length = str.length();

    for (int i = n; i <= length - n; i++) {
        if (prefix.equals(str.substring(i, i + n))) {
            return true;
        }
    }
    return false;
}
 类似资料:
  • 从codingBat解决这个问题 给定一个字符串,返回字符串中最大“块”的长度。块是相同的相邻字符的运行。 我试图解决它使用一个为循环如下: 它胜过了所有的案子,除了一个。有人能用一个for循环显示解决方案吗? 很抱歉这么晚才提到,但您不能使用正则表达式或集合框架中的任何东西。

  • 给定CodingBat中的任务sameEnds: 如果数组开头和结尾的数字组相同,则返回true。例如,对于,n=0和n=2的endpoint相同,n=1和n=3的endpoint相同。您可以假设n在0范围内。。nums。长度(含)。 我对这个问题的解决方案通过了绝大多数测试,但不是所有测试: 我的问题如下: 如何修复我的解决方案 是否可以使用流API解决此任务

  • 给定来自CodingBat的zeroFront notAlone任务: 返回一个数组,该数组包含与给定数组完全相同的数字,但重新排列以使所有零都在数组的开头分组。非零数字的顺序并不重要。因此变为。您可以修改并返回给定数组或制作一个新数组。 我对这个问题的解决方案在某些情况下会抛出ArrayIndexOutOfBoundsException: 我的问题如下: 如何解决我的问题? 如何使用Stream

  • 给定来自CodingBat的任务sumNumbers sumNumbers: 给定一个字符串,返回字符串中出现的数字之和,忽略所有其他字符。数字是一行中一个或多个数字字符的序列。(注意:Character.isDigit(char)测试字符是否为字符“0”、“1”、…、'9'. 整数parseInt(string)将字符串转换为int.) 我对这个问题的解决方案如下: 是否可以使用流API解决此问

  • 给定CodingBat中的任务notAlone: 如果数组中的元素前后都有值,并且这些值与它不同,那么我们会说它是“单独的”。返回给定数组的一个版本,其中给定值的每个单独实例都被其左侧或右侧较大的值替换。 我对这个问题的解决方案通过了绝大多数测试,但不是所有测试: 我的问题如下: 如何解决我的问题? 是否可以使用Stream API解决此任务? 测试结果