本题要求将数字字符串从一个字符集(源进制)表示转换为另一个字符集(目标进制)表示。
核心算法:反复除法(Repeated Division)
设源进制基数为 S=len(sourceDigits),目标进制基数为 T=len(targetDigits)。
方法一(Python / Java BigInteger / JavaScript BigInt):先将源进制字符串转为十进制大整数,再通过反复对 T 取余数转换为目标进制。
在一个特殊的数学系统中,每个数字都有其独特的表示方式。给定两个不同的数字字符集和一个数字字符串,你需要将这个数字从一个字符系统转换到另一个字符系统。实现一个函数,将使用源字符集表示的数字转换为使用目标字符集表示的数字。
sourceDigits 和 targetDigits 由不同的字符组成,且不包含重复字符num 中的所有字符都存在于 sourceDigits 中输入
"101","01","0123456789"
输出
"5"
说明
解释: 二进制 "101" 转换为十进制是 "5"
输入
"ff","0123456789abcdef","0123456789"
输出
"255"
说明
解释: 十六进制 "ff" 转换为十进制是 "255"
输入
"100","01","0123456789abcdef"
输出
"4"
说明
解释: 二进制 "100" 转换为十六进制是 "4"
输入
"7","0123456789","01"
输出
"111"
说明
解释: 十进制 "7" 转换为二进制是 "111"
输入
"10012","01234","012"
输出
"212102"
说明
解释: 五进制 "10012" 转换为三进制是 "212102"
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册