1. StringBuffer的申明:StringBuilder sb = new StringBuilder()
  2. Map类的常用方法 boolean containsValue(Object value);//判断集合中是否包含指定value。
  3. str.charAt()返回的是字符不是String不能用作key。还是先split("")成String[]数组再索引。
import java.util.*;
import java.lang.*;

public class Main {
    public static void main (String[] args) {

        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        String[] s = str.split("");
        StringBuilder sb = new StringBuilder();
        Map<String, Integer> charId = new HashMap<>();

        for (int i = str.length() - 1; i >= 0; i--) {
            if ( !charId.containsKey(s[i])) {
                charId.put(s[i], i);
                sb.append(s[i]);
            }
        }

        System.out.println(sb.toString());
    }
}