题意整理。
- 键盘输入一串字符串。
- 取出其中重复的元素,要求使用set解决。
方法一(set)
1.解题思路
- 首先定义容器,将字符串中字符添加到set容器。
- 由于set本身会自动去重,所以直接输出set容器中的元素即可。
图解展示:
2.代码实现
#include <iostream>
#include <set>
using namespace std;
int main() {
char str[100] = { 0 };
cin.getline(str, sizeof(str));
//定义set容器
set<char> s;
//将字符串中字符添加到set容器
for(int i=0;str[i]!='\0';i++){
s.insert(str[i]);
}
//由于set本身会自动去重,所以直接输出set容器中的元素即可
for(auto iter=s.begin();iter!=s.end();iter++){
cout<<*iter;
}
return 0;
}
3.复杂度分析
- 时间复杂度:假设字符串长度为n,需要将所有元素添加到set,所以时间复杂度为。
- 空间复杂度:需要额外大小为n的set,所以空间复杂度为。