gpt4 book ai didi

java - 检测字符串中的重复字符

转载 作者:搜寻专家 更新时间:2023-11-01 01:42:04 25 4
gpt4 key购买 nike

我正在做 Cracking The Coding Interview 一书中的练习,我正在尝试确定字符串中是否存在重复字符。我正在使用 ArrayList 数据结构。我的方法是返回类型Boolean,如果有重复则返回true,如果没有重复字符则返回false。我添加了第三个 return 语句,这样程序可以编译,但它总是返回 false。

import java.util.*;

public class QuestionOneCrackingCode {

public static void main(String[] args) {
String s = "abcdefga";
ArrayList<String> c = new ArrayList<String>();
c.add(s);

System.out.print(check(c));
}

public static boolean check(ArrayList<String> g) {
for (int i = 0; i < g.size(); i++) {
for (int j = i + 1; j < g.size(); j++) {
if (g.get(i) == g.get(j)) {
return true;
} else {
return false;
}
}
}
return false;
}
}

最佳答案

您不是将字符串分成字符,而是创建一个包含字符串的单元素列表。在不对算法进行重大更改的情况下,您可以这样做:

public static void main(String[] args) {
String s = "abcdefga";

System.out.print(check(s));
}

public static boolean check(CharSequence g) {
for (int i = 0; i < g.length(); i++) {
for (int j = i + 1; j < g.length(); j++) {
if (g.charAt(i) == g.charAt(j)) {
return true;
}
}
}
return false;
}

请注意,第一个 return false; 也是不正确的,因为它会阻止算法继续进行第一个比较。

顺便说一句,当您比较字符串时,您应该使用.equals() 而不是==

关于java - 检测字符串中的重复字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31550412/

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