遍历字符串,遇到数字或A到F之间的字母时将其加入一个临时字符串中,遇到G到Z的字母时将之前的临时字符串变为数字并更新答案。
时间复杂度
空间复杂度

class Solution {
public:
    /**
     *
     * @param s string字符串
     * @return int整型
     */
    int sti(string a) {
        int ret = 0;
        for (int i = 0; i < a.length(); i++) {
            ret *= 16;
            if (a[i] >= '0' && a[i] <= '9') ret = ret + a[i] - '0';
            else ret = ret + a[i] - 'A' + 10;
        }
        return ret;
    }

    int solve(string s) {
        // write code here
        int ans = 0;
        int len = s.length();
        string a;
        a.clear();
        for (int i = 0; i < len; i++) {
            if ((s[i] >= '0' && s[i] <= '9') || (s[i] >= 'A' && s[i] <= 'F')) {
                a += s[i];
            } else {
                if (i != 0 && ((s[i - 1] >= '0' && s[i - 1] <= '9') || (s[i - 1] >= 'A' && s[i - 1] <= 'F'))) {
                    ans = max(ans, sti(a));
                    a.clear();
                }
            }
        }
        return ans;
    }
};