牛牛有一个由小写字母组成的字符串s,在s中可能有一些字母重复出现。比如在"banana"中,字母'a'和字母'n'分别出现了三次和两次。
 但是牛牛不喜欢重复。对于同一个字母,他只想保留第一次出现并删除掉后面出现的字母。请帮助牛牛完成对s的操作。
                                        
                                            输入包括一个字符串s,s的长度length(1 ≤ length ≤ 1000),s中的每个字符都是小写的英文字母('a' - 'z')
                        输出一个字符串,表示满足牛牛要求的字符串
banana
ban
//比特位表示字母是否出现
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        String res = "";
        int flag = 0;
        for(int i=0;i<s.length();i++){
            int temp = 1<<(s.charAt(i)-'a');
            if((temp&flag)==0) {//第一次出现
                res+=s.charAt(i);
                flag|=temp;
            }
        }
        System.out.print(res);
    }
}
 //建表
#include<iostream>
#include<string>
using namespace std;
int main()
{
    string str;
    int WordTable[26] = { 0 };
    while (cin >> str)
    {
        for (char c : str)
            if (WordTable[c - 'a'] == 0)
                WordTable[c - 'a'] = 1,cout<<c;
        cout << endl;
    }
    return 0;
}
                                                                                    import java.util.*;
public class Main {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner cin=new Scanner (System.in);
		String str=cin.next();
		int a=str.length();
		String s="";
		String s1=String.valueOf(str.charAt(0))+s;
		for(int i=1;i<a;i++) {
			if(s1.contains(String.valueOf(str.charAt(i)))==true)continue;
			else {
				s1=s1+String.valueOf(str.charAt(i))+s;
			}
		}
		System.out.print(s1);
	}
}
 import java.util.Scanner;
import java.util.Set;
import java.util.LinkedHashSet;
public class Main{
    public static void main(String[] args){
        try(Scanner in = new Scanner(System.in)){
            System.out.println(helper(in.nextLine()));
        }
    }
    public static String helper(String s){
        Set<Character> set = new LinkedHashSet<>();
        char[] cs = s.toCharArray();
        for(char c:cs){
            set.add(c);
        }
        StringBuffer sb = new StringBuffer();
        for(char c:set){
            sb.append(c);
        }
        return sb.toString();
    }
}
 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(const int argc, const char* argv[]) {
  int32_t state = 0;
  char input[1024] = { 0 }, ans[1024] = { 0 };
  
  fgets(input, 1024, stdin);
  const char* p = input;
  while (*p) {
    if (state & 1 << *p - 97) {
      ++p;
      continue;
    }
    state |= 1 << *p - 97;
    strncat(ans, p++, 1);
  }
  
  return fputs(ans, stdout),  0;
} #include <iostream>
#include <math.h>
#include <cstdio>
#include<algorithm>
#include<string>
#include<stdlib.h>
#include<map>
#include<stdio.h>
using namespace std;
int main()
{
  string s,res="";
  cin>>s;
  map<char,bool> Num;
    for(int i=0;i<s.length();i++)
    {
        char temp=s[i];
        if(Num.count(temp)==0)//if(!Num.count(temp))//未出现字符
        {
             res+=s[i];
            Num[temp]++;
        }
    }
    cout<<res<<endl;
        return 0;
} array=input() s=list(set(list(map(str,array)))) s.sort(key=array.index) print(''.join(str(i) for i in s))
import java.util.HashSet;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        StringBuilder sb = new StringBuilder();
        sb.append(str);
        HashSet<Character> set = new HashSet();
        for (int i = 0; i < sb.length(); i++) {
            if (set.contains(sb.charAt(i))) {
                sb.setCharAt(i, '0');
            }
            set.add(sb.charAt(i));
        }
        System.out.println(sb.toString().replace("0", ""));
    }
}
                                                                                    #include<iostream>
#include<map>
using namespace std;
int main() {
    string s, ans = "";
    map<char, bool> map;
    cin >> s;
    for (int i = 0; i < s.size(); i++) {
        if (!map.count(s[i])) {
            ans += s[i];
            map[s[i]] = true;
        }
    }
    cout << ans << endl;
    return 0;
}
                                                                                    #include<stdio.h>
#include<string.h>
int main()
{
 int letter[26],length,i;
 memset(letter,0,sizeof(letter));
 char str[1000];
 gets(str);
 length=strlen(str);
 for(i=0;i<=length-1;i++)
 {
  if(letter[str[i]-'a']==0)
  letter[str[i]-'a']=1;
  else
  str[i]=0;
 }
 for(i=0;i<=length-1;i++)
 {
  if(str[i]!=0)
  printf("%c",str[i]);
 }
 return 0;
}
 #include <bits/stdc++.h>
using namespace std;
int main()
{
    map<char,int> m;
    string s;
    cin >> s;
    for(auto it : s)
    {
        if(m[it] == 0)
        {
            cout << it;
            m[it]++;
        }
    }
    return 0;
}