算法思路

本题要求将一个十六进制数转换为十进制数。十六进制数是以 0x 开头的字符串,而我们需要将其转化为对应的十进制整数。

  • 十六进制到十进制的转换规则:十六进制每一位对应的值为 0~9A~F(分别表示 0~15),从右到左依次乘以 16的幂次。
    • 比如 0xAA,即 A * 16^1 + A * 16^0,其中 A 对应十进制的 10,最终结果为 170
  • 输入输出:输入是一个十六进制字符串,输出对应的十进制字符串。

在 JavaScript 中,转换十六进制到十进制非常简单,可以使用内置的 parseInt 函数,传入 16 作为第二个参数。

Code

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void async function () {
    // 读取输入的十六进制字符串
    let hexStr = await readline();
    
    // 使用 parseInt 函数将十六进制字符串转为十进制整数
    let decimalValue = parseInt(hexStr, 16);
    
    // 输出对应的十进制值
    console.log(decimalValue);
}();

复杂度分析

  • 时间复杂度O(n),其中 n 是输入字符串的长度。我们需要遍历每个字符来完成转换。
  • 空间复杂度O(1),只使用了常数空间来存储输入和结果。