gpt4 book ai didi

java - 最大重复字符数和数量

转载 作者:行者123 更新时间:2023-12-01 19:46:47 24 4
gpt4 key购买 nike

我想获取最大重复字符数及其相关索引。我能够打印给定字符串及其索引中的最大重复字符。但是我无法打印重复字符的总数。下面是我的代码

public class MaxRepeating {

static char charactercountIndex(String str) {
int len = str.length();
int count = 0;

char res = str.charAt(0);
for (int i = 0; i < len; i++) {
int cur_count = 0;
for (int j = i + 1; j < len; j++) {
if (str.charAt(i) != str.charAt(j))
break;
cur_count++;
}

if (cur_count > count) {
count = cur_count;
res = str.charAt(i);

}
}
return res;

}

public static void main(String args[]) {

String str = "aaaaaaccde";
char s1 = charactercountIndex(str);
str.indexOf(s1);
System.out.println(str.indexOf(s1));
System.out.println(charactercountIndex(str));

}
}

输出应该<0,6>0 是字符 a 的索引6 是字符“a”出现在字符串中的总时间

最佳答案

如果您愿意采用稍微不同的方法,那么有一种相当简单的方法可以使用正则表达式和流来实现此目的。我们可以尝试使用以下正则表达式将输入字符串拆分为类似字母的子字符串组件:

(?<=(.))(?!\\1)

然后,我们可以使用Collections.max来查找集合中最大的字符串,最后使用String#indexOf来查找该子字符串的索引。

String str = "aaaabbddddddddddddddddddddaaccde";
List<String> parts = Arrays.asList(str.split("(?<=(.))(?!\\1)"));
String max = Collections.max(parts, Comparator.comparing(s -> s.length()));
System.out.println("largest substring: " + max);
int index = str.indexOf(max);
System.out.println("index of largest substring: " + index);

largest substring: dddddddddddddddddddd
index of largest substring: 6

关于java - 最大重复字符数和数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52946159/

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