题意整理。

  • 输入一个字符串,去除其中重复的字符。

方法一(HashSet)

1.解题思路

  • 新建HashSet,然后遍历字符串,将所有字符添加到Set。
  • 由于HashSet本身结构不允许有重复的项,所以会自动去除重复的元素。

动图展示: alt

2.代码实现

import java.util.HashSet;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();
        scanner.close();
        HashSet<Character> hs = new HashSet<>();

        //将所有字符添加到HashSet
        for(char c:str.toCharArray()){
            //由于HashSet本身结构不允许有重复的项,所以会自动去重
            hs.add(c);
        }

        for (char c:hs) {
            System.out.print(c);
        }
    }
}

3.复杂度分析

  • 时间复杂度:假设输入字符串的长度为n,需要遍历所有的字符,所以时间复杂度为O(n)O(n)
  • 空间复杂度:需要额外大小为n的HashSet,所以空间复杂度为O(n)O(n)