輸入一個字符串,求出該字符串包含的字符集合
輸入描述:
每組數據輸入一個字符串,字符串最大長度爲100,且只包含字母,不可能爲空串,區分大小寫。
輸出描述:
每組數據一行,按字符串原有的字符順序,輸出字符集合,即重複出現並靠後的字母不輸出。
輸入例子1:
abcqweracb
輸出例子1:
abcqwer
思路
因爲字符只有大小寫字母,所以可以用一個大小爲52的數組來記錄出現過的字符;
下標0-25記錄小寫字母,26-51記錄大寫字母
#include<bits/stdc++.h>
using namespace std;
// 判斷是否是小寫字母
bool islower(char ch){
return 'a'<= ch&& ch<= 'z';
}
int main(){
string str;
while(cin>>str){
// 記錄出現過的字母,0-25記錄小寫字母,26-51記錄大寫字母
vector<bool> has(52, 0);
string result= "";
int len= str.length();
char sub;
for(int i= 0; i< len; ++i){
// 大寫字母需要後移26個位置
sub= islower(str[i])? 'a': 'A'- 26;
if(!has[str[i]- sub]){
result+= str[i];
has[str[i]- sub]= 1;
}
}
cout<<result<<endl;
}
return 0;
}