算法思路
本题要求将一个十六进制数转换为十进制数。十六进制数是以 0x
开头的字符串,而我们需要将其转化为对应的十进制整数。
- 十六进制到十进制的转换规则:十六进制每一位对应的值为
0~9
和A~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)
,只使用了常数空间来存储输入和结果。