1256. 加密数字 🔒
题目描述
给你一个非负整数 num
,返回它的「加密字符串」。
加密的过程是把一个整数用某个未知函数进行转化,你需要从下表推测出该转化函数:
示例 1:
输入:num = 23 输出:"1000"
示例 2:
输入:num = 107 输出:"101100"
提示:
0 <= num <= 10^9
解法
方法一:位运算
我们将 $num$ 加一,然后将其转换为二进制字符串,去掉最高位的 $1$ 即可。
时间复杂度 $O(\log n)$,空间复杂度 $O(\log n)$。其中 $n$ 为 $num$ 的大小。
1 2 3 |
|
1 2 3 4 5 |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
|
1 2 3 4 5 |
|
1 2 3 4 5 |
|