使用Java编写一个函数来删除一个字符串中的重复字符。
发布时间:2023-07-04 21:42:29
以下是一个使用Java编写的函数,用于删除字符串中的重复字符。
public static String removeDuplicates(String str) {
if (str == null) {
return null;
}
// 使用一个HashSet来存储出现过的字符
Set<Character> set = new HashSet<>();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
// 如果字符不在HashSet中,将其添加到HashSet和StringBuilder中
if (!set.contains(c)) {
set.add(c);
sb.append(c);
}
}
return sb.toString();
}
该函数的主要思路是使用一个HashSet来存储已经出现过的字符,通过遍历字符串中的每个字符,当字符不在HashSet中时,将其添加到HashSet和StringBuilder中。最后,返回StringBuilder中的字符串。
为了验证该函数的正确性,可以使用以下代码进行测试:
public static void main(String[] args) {
String str = "abbcdeefghi";
String result = removeDuplicates(str);
System.out.println(result); // 输出:abcdefghi
}
以上代码会输出 "abcdefghi",将字符串中的重复字符删除后的结果。
需要注意的是,该函数的时间复杂度为O(n),其中n为字符串的长度。由于使用了HashSet,它会在平均情况下提供O(1)的查询时间,因此总的时间复杂度为O(n)。
