欢迎访问宙启技术站
智能推送

使用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)。