gpt4 book ai didi

java - 如何在java中优化两个for循环(一个for循环内一个for循环)

转载 作者:行者123 更新时间:2023-12-01 16:35:43 26 4
gpt4 key购买 nike

我有以下问题:

  • 我有一个很长的字符串String str =“abcdefghiart----”
  • 现在我想迭代字符串并希望找到字符串中的第一个重复字符
  • 我可以通过应用两个 for 循环来搜索第一个重复项来实现
  • 这种方法效果很好,但如果字符串非常大并且只有最后两个字符重复,迭代复杂度会非常高

    现在我想最小化复杂性并优化此代码。我也可以使用 foreach 循环进行迭代,但仍然是两个 foreach 循环。我不想使用任何系统库。有人可以帮我解决这个问题吗?

最佳答案

BitSet seenCharacters = new BitSet();
for(int i=0;i<str.length(); i++) {
if(seenCharacters.get(str.charAt(i))) {
return str.charAt(i); // duplicate
}
seenCharacters.set(i);
}

...足够简单了,不是吗?

关于java - 如何在java中优化两个for循环(一个for循环内一个for循环),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9323496/

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