返回介绍

solution / 1200-1299 / 1256.Encode Number / README_EN

发布于 2024-06-17 01:03:21 字数 2299 浏览 0 评论 0 收藏 0

1256. Encode Number

中文文档

Description

Given a non-negative integer num, Return its _encoding_ string.

The encoding is done by converting the integer to a string using a secret function that you should deduce from the following table:

 

Example 1:


Input: num = 23

Output: "1000"

Example 2:


Input: num = 107

Output: "101100"

 

Constraints:

  • 0 <= num <= 10^9

Solutions

Solution 1: Bit Manipulation

We add one to $num$, then convert it to a binary string and remove the highest bit $1$.

The time complexity is $O(\log n)$, and the space complexity is $O(\log n)$. Where $n$ is the size of $num$.

class Solution:
  def encode(self, num: int) -> str:
    return bin(num + 1)[3:]
class Solution {
  public String encode(int num) {
    return Integer.toBinaryString(num + 1).substring(1);
  }
}
class Solution {
public:
  string encode(int num) {
    bitset<32> bs(++num);
    string ans = bs.to_string();
    int i = 0;
    while (ans[i] == '0') {
      ++i;
    }
    return ans.substr(i + 1);
  }
};
func encode(num int) string {
  num++
  s := strconv.FormatInt(int64(num), 2)
  return s[1:]
}
function encode(num: number): string {
  ++num;
  let s = num.toString(2);
  return s.slice(1);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文