遍历字符串,遇到数字或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; } };