gpt4 book ai didi

java - 直接统计重复子串的出现次数

转载 作者:行者123 更新时间:2023-12-01 18:36:30 25 4
gpt4 key购买 nike

我正在尝试计算字符串中子字符串直接重复的次数。

String s = "abcabcdabc";
String t = "abc";
int count = 2;

编辑:因为有些人在问,我尝试澄清这一点: s 中有 3 次 t 但我需要 t 在没有任何其他字符的情况下重复的次数。这将导致 2,因为我的示例中的 d 不是 t 的起始字符。 ('d'!='a')。

另一个例子来澄清这一点:

String s = "fooabcabcdabc";
String t = "abc";
int count = 0;

我知道如何计算字符串中出现的次数,我需要它从左到右不间断地重复!

这是我到目前为止所拥有的,但我认为我犯了一个简单的错误......

public static int countRepeat(String s, String t){
if(s.length() == 0 || t.length() == 0){
return 0;
}
int count = 0;
if(t.length() == 1){
System.out.println(s+" | " + t);
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) != t.charAt(0)){
return count;
}
count++;
}
}else{
System.out.println(s+" | " + t);
for (int i = 0; i < s.length(); i++) {
int tchar = (i- (count*(t.length()-1)));
System.out.println(i+ " | " + tchar);
if (s.charAt(i) != t.charAt(tchar)){
return count;
}
if(tchar >= t.length()-1){
count++;
}
}
}
return count;
}

我做错了什么?有没有更好/更快的方法来做到这一点?

最佳答案

存在 str.indexOf(substring,index) String API 中的方法。

在伪代码中,这意味着这样的事情:

declare integer variable as index 
declare integer variable as count
while index <= (length of string - length of substring)
index = indexOf substring from index
if index >= 0
increment count
end if
end while

关于java - 直接统计重复子串的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21778799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com