import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        String s = in.next();
        s = s.substring(2);
        int t = 1, res = 0;
        for(int i = s.length()-1; i >= 0; i--){
            char tmp = s.charAt(i);
            if(tmp == 'A'){
                res += t * 10;
            }else if(tmp == 'B'){
                res += t * 11;
            }else if(tmp == 'C'){
                res += t * 12;
            }else if(tmp == 'D'){
                res += t * 13;
            }else if(tmp == 'E'){
                res += t * 14;
            }else if(tmp == 'F'){
                res += t * 15;
            }else{
                res += t * (tmp - '0');
            }
             t*= 16;
            // System.out.println(res);
        }
        System.out.println(res);
    }
}

直接模拟,从字符串的后面开始遍历,每一位都是上一位的16倍;前面两个字符0x直接截掉

#牛客春招刷题训练营# https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6