mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-05 16:36:41 +08:00
Add solution 1600, change dir 0167、0303、0304、0307、0653、1017
This commit is contained in:
20
leetcode/1017.Convert-to-Base-2/1017. Convert to Base -2.go
Normal file
20
leetcode/1017.Convert-to-Base-2/1017. Convert to Base -2.go
Normal file
@ -0,0 +1,20 @@
|
||||
package leetcode
|
||||
|
||||
import "strconv"
|
||||
|
||||
func baseNeg2(N int) string {
|
||||
if N == 0 {
|
||||
return "0"
|
||||
}
|
||||
res := ""
|
||||
for N != 0 {
|
||||
remainder := N % (-2)
|
||||
N = N / (-2)
|
||||
if remainder < 0 {
|
||||
remainder += 2
|
||||
N++
|
||||
}
|
||||
res = strconv.Itoa(remainder) + res
|
||||
}
|
||||
return res
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
package leetcode
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
type question1017 struct {
|
||||
para1017
|
||||
ans1017
|
||||
}
|
||||
|
||||
// para 是参数
|
||||
// one 代表第一个参数
|
||||
type para1017 struct {
|
||||
one int
|
||||
}
|
||||
|
||||
// ans 是答案
|
||||
// one 代表第一个答案
|
||||
type ans1017 struct {
|
||||
one string
|
||||
}
|
||||
|
||||
func Test_Problem1017(t *testing.T) {
|
||||
|
||||
qs := []question1017{
|
||||
|
||||
{
|
||||
para1017{2},
|
||||
ans1017{"110"},
|
||||
},
|
||||
|
||||
{
|
||||
para1017{3},
|
||||
ans1017{"111"},
|
||||
},
|
||||
|
||||
{
|
||||
para1017{4},
|
||||
ans1017{"110"},
|
||||
},
|
||||
}
|
||||
|
||||
fmt.Printf("------------------------Leetcode Problem 1017------------------------\n")
|
||||
|
||||
for _, q := range qs {
|
||||
_, p := q.ans1017, q.para1017
|
||||
fmt.Printf("【input】:%v 【output】:%v\n", p, baseNeg2(p.one))
|
||||
}
|
||||
fmt.Printf("\n\n\n")
|
||||
}
|
47
leetcode/1017.Convert-to-Base-2/README.md
Executable file
47
leetcode/1017.Convert-to-Base-2/README.md
Executable file
@ -0,0 +1,47 @@
|
||||
# [1017. Convert to Base -2](https://leetcode.com/problems/convert-to-base-2/)
|
||||
|
||||
|
||||
## 题目
|
||||
|
||||
Given a number `N`, return a string consisting of `"0"`s and `"1"`s that represents its value in base **`-2`** (negative two).
|
||||
|
||||
The returned string must have no leading zeroes, unless the string is `"0"`.
|
||||
|
||||
**Example 1:**
|
||||
|
||||
Input: 2
|
||||
Output: "110"
|
||||
Explantion: (-2) ^ 2 + (-2) ^ 1 = 2
|
||||
|
||||
**Example 2:**
|
||||
|
||||
Input: 3
|
||||
Output: "111"
|
||||
Explantion: (-2) ^ 2 + (-2) ^ 1 + (-2) ^ 0 = 3
|
||||
|
||||
**Example 3:**
|
||||
|
||||
Input: 4
|
||||
Output: "100"
|
||||
Explantion: (-2) ^ 2 = 4
|
||||
|
||||
**Note:**
|
||||
|
||||
1. `0 <= N <= 10^9`
|
||||
|
||||
|
||||
## 题目大意
|
||||
|
||||
给出数字 N,返回由若干 "0" 和 "1"组成的字符串,该字符串为 N 的负二进制(base -2)表示。除非字符串就是 "0",否则返回的字符串中不能含有前导零。
|
||||
|
||||
提示:
|
||||
|
||||
- 0 <= N <= 10^9
|
||||
|
||||
|
||||
|
||||
## 解题思路
|
||||
|
||||
- 给出一个十进制的数,要求转换成 -2 进制的数
|
||||
- 这一题仿造十进制转二进制的思路,短除法即可。
|
||||
|
Reference in New Issue
Block a user