gpt4 book ai didi

java - for 循环计算字符串中重复的字符数,然后删除重复的字符

转载 作者:行者123 更新时间:2023-11-30 11:20:28 24 4
gpt4 key购买 nike

示例:中午攻击 = a3t3c1k1 2n2o2

它也计算空格。这是我所拥有的,但它似乎没有正确返回:

String getCount(String str) {
String R = "";
int l = S.length();
int cnt = 1;

for (int i = 0; i < l; i++)
for (int j = i + 1; j < l; j++)
if (S.charAt(j) == S.charAt(i)) {
cnt++;
R = R + S.charAt(i)+""+cnt;
System.out.print(S.charAt(i) + cnt);
}
return R;
}

最佳答案

如果字符串足够小,您不需要任何花哨的东西,只需暴力破解即可(对于 中午攻击,这将在 3 毫秒内运行)。

此代码将遍历所有字符,如果未找到,则将字符及其计数附加到 StringBuilder,然后在终止前打印。

import java.util.HashMap;

public class Counter {
HashMap<String, Integer> counts;
StringBuilder result;

public static void main(String[] args) {
Counter counter = new Counter();
counter.countString("attack at noon");
}

void countString(String S) {
counts = new HashMap<String, Integer>();
result = new StringBuilder();

String[] split = S.split("");
for (int i = 1; i < split.length; i++) {
String c = split[i];
countChar(c, S);
}
System.out.println(result);
}

void countChar(String c, String s) {
Integer integer = counts.get(c);
if (integer == null) {
int i = s.length() - s.replace(c, "").length();
counts.put(c, i);
result.append(c).append(i);
}
}
}

关于java - for 循环计算字符串中重复的字符数,然后删除重复的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22694217/

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