题意整理。
- 输入一个字符串,去除其中重复的字符。
方法一(HashSet)
1.解题思路
- 新建HashSet,然后遍历字符串,将所有字符添加到Set。
- 由于HashSet本身结构不允许有重复的项,所以会自动去除重复的元素。
动图展示:
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,需要遍历所有的字符,所以时间复杂度为。
- 空间复杂度:需要额外大小为n的HashSet,所以空间复杂度为。