Welcome to Subscribe On Youtube

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 { 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); } }; 
  • class Solution: def encode(self, num: int) -> str: return bin(num + 1)[3:] 
  • 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); } 

All Problems

All Solutions