mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-04 16:12:47 +08:00
Add solution 1018
This commit is contained in:
@ -0,0 +1,10 @@
|
||||
package leetcode
|
||||
|
||||
func prefixesDivBy5(a []int) []bool {
|
||||
res, num := make([]bool, len(a)), 0
|
||||
for i, v := range a {
|
||||
num = (num<<1 | v) % 5
|
||||
res[i] = num == 0
|
||||
}
|
||||
return res
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package leetcode
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
type question1018 struct {
|
||||
para1018
|
||||
ans1018
|
||||
}
|
||||
|
||||
// para 是参数
|
||||
// one 代表第一个参数
|
||||
type para1018 struct {
|
||||
a []int
|
||||
}
|
||||
|
||||
// ans 是答案
|
||||
// one 代表第一个答案
|
||||
type ans1018 struct {
|
||||
one []bool
|
||||
}
|
||||
|
||||
func Test_Problem1018(t *testing.T) {
|
||||
|
||||
qs := []question1018{
|
||||
|
||||
{
|
||||
para1018{[]int{0, 1, 1}},
|
||||
ans1018{[]bool{true, false, false}},
|
||||
},
|
||||
|
||||
{
|
||||
para1018{[]int{1, 1, 1}},
|
||||
ans1018{[]bool{false, false, false}},
|
||||
},
|
||||
|
||||
{
|
||||
para1018{[]int{0, 1, 1, 1, 1, 1}},
|
||||
ans1018{[]bool{true, false, false, false, true, false}},
|
||||
},
|
||||
|
||||
{
|
||||
para1018{[]int{1, 1, 1, 0, 1}},
|
||||
ans1018{[]bool{false, false, false, false, false}},
|
||||
},
|
||||
}
|
||||
|
||||
fmt.Printf("------------------------Leetcode Problem 1018------------------------\n")
|
||||
|
||||
for _, q := range qs {
|
||||
_, p := q.ans1018, q.para1018
|
||||
fmt.Printf("【input】:%v 【output】:%v\n", p, prefixesDivBy5(p.a))
|
||||
}
|
||||
fmt.Printf("\n\n\n")
|
||||
}
|
70
leetcode/1018.Binary-Prefix-Divisible-By-5/README.md
Normal file
70
leetcode/1018.Binary-Prefix-Divisible-By-5/README.md
Normal file
@ -0,0 +1,70 @@
|
||||
# [1018. Binary Prefix Divisible By 5](https://leetcode.com/problems/binary-prefix-divisible-by-5/)
|
||||
|
||||
|
||||
## 题目
|
||||
|
||||
Given an array `A` of `0`s and `1`s, consider `N_i`: the i-th subarray from `A[0]` to `A[i]` interpreted as a binary number (from most-significant-bit to least-significant-bit.)
|
||||
|
||||
Return a list of booleans `answer`, where `answer[i]` is `true` if and only if `N_i` is divisible by 5.
|
||||
|
||||
**Example 1:**
|
||||
|
||||
```
|
||||
Input: [0,1,1]
|
||||
Output: [true,false,false]
|
||||
Explanation:
|
||||
The input numbers in binary are 0, 01, 011; which are 0, 1, and 3 in base-10. Only the first number is divisible by 5, so answer[0] is true.
|
||||
|
||||
```
|
||||
|
||||
**Example 2:**
|
||||
|
||||
```
|
||||
Input: [1,1,1]
|
||||
Output: [false,false,false]
|
||||
|
||||
```
|
||||
|
||||
**Example 3:**
|
||||
|
||||
```
|
||||
Input: [0,1,1,1,1,1]
|
||||
Output: [true,false,false,false,true,false]
|
||||
|
||||
```
|
||||
|
||||
**Example 4:**
|
||||
|
||||
```
|
||||
Input: [1,1,1,0,1]
|
||||
Output: [false,false,false,false,false]
|
||||
|
||||
```
|
||||
|
||||
**Note:**
|
||||
|
||||
1. `1 <= A.length <= 30000`
|
||||
2. `A[i]` is `0` or `1`
|
||||
|
||||
## 题目大意
|
||||
|
||||
给定由若干 0 和 1 组成的数组 A。我们定义 N_i:从 A[0] 到 A[i] 的第 i 个子数组被解释为一个二进制数(从最高有效位到最低有效位)。返回布尔值列表 answer,只有当 N_i 可以被 5 整除时,答案 answer[i] 为 true,否则为 false。
|
||||
|
||||
## 解题思路
|
||||
|
||||
- 简单题。每扫描数组中的一个数字,累计转换成二进制数对 5 取余,如果余数为 0,则存入 true,否则存入 false。
|
||||
|
||||
## 代码
|
||||
|
||||
```go
|
||||
package leetcode
|
||||
|
||||
func prefixesDivBy5(a []int) []bool {
|
||||
res, num := make([]bool, len(a)), 0
|
||||
for i, v := range a {
|
||||
num = (num<<1 | v) % 5
|
||||
res[i] = num == 0
|
||||
}
|
||||
return res
|
||||
}
|
||||
```
|
@ -0,0 +1,70 @@
|
||||
# [1018. Binary Prefix Divisible By 5](https://leetcode.com/problems/binary-prefix-divisible-by-5/)
|
||||
|
||||
|
||||
## 题目
|
||||
|
||||
Given an array `A` of `0`s and `1`s, consider `N_i`: the i-th subarray from `A[0]` to `A[i]` interpreted as a binary number (from most-significant-bit to least-significant-bit.)
|
||||
|
||||
Return a list of booleans `answer`, where `answer[i]` is `true` if and only if `N_i` is divisible by 5.
|
||||
|
||||
**Example 1:**
|
||||
|
||||
```
|
||||
Input: [0,1,1]
|
||||
Output: [true,false,false]
|
||||
Explanation:
|
||||
The input numbers in binary are 0, 01, 011; which are 0, 1, and 3 in base-10. Only the first number is divisible by 5, so answer[0] is true.
|
||||
|
||||
```
|
||||
|
||||
**Example 2:**
|
||||
|
||||
```
|
||||
Input: [1,1,1]
|
||||
Output: [false,false,false]
|
||||
|
||||
```
|
||||
|
||||
**Example 3:**
|
||||
|
||||
```
|
||||
Input: [0,1,1,1,1,1]
|
||||
Output: [true,false,false,false,true,false]
|
||||
|
||||
```
|
||||
|
||||
**Example 4:**
|
||||
|
||||
```
|
||||
Input: [1,1,1,0,1]
|
||||
Output: [false,false,false,false,false]
|
||||
|
||||
```
|
||||
|
||||
**Note:**
|
||||
|
||||
1. `1 <= A.length <= 30000`
|
||||
2. `A[i]` is `0` or `1`
|
||||
|
||||
## 题目大意
|
||||
|
||||
给定由若干 0 和 1 组成的数组 A。我们定义 N_i:从 A[0] 到 A[i] 的第 i 个子数组被解释为一个二进制数(从最高有效位到最低有效位)。返回布尔值列表 answer,只有当 N_i 可以被 5 整除时,答案 answer[i] 为 true,否则为 false。
|
||||
|
||||
## 解题思路
|
||||
|
||||
- 简单题。每扫描数组中的一个数字,累计转换成二进制数对 5 取余,如果余数为 0,则存入 true,否则存入 false。
|
||||
|
||||
## 代码
|
||||
|
||||
```go
|
||||
package leetcode
|
||||
|
||||
func prefixesDivBy5(a []int) []bool {
|
||||
res, num := make([]bool, len(a)), 0
|
||||
for i, v := range a {
|
||||
num = (num<<1 | v) % 5
|
||||
res[i] = num == 0
|
||||
}
|
||||
return res
|
||||
}
|
||||
```
|
@ -483,6 +483,7 @@ headless: true
|
||||
- [1005.Maximize-Sum-Of-Array-After-K-Negations]({{< relref "/ChapterFour/1005.Maximize-Sum-Of-Array-After-K-Negations.md" >}})
|
||||
- [1011.Capacity-To-Ship-Packages-Within-D-Days]({{< relref "/ChapterFour/1011.Capacity-To-Ship-Packages-Within-D-Days.md" >}})
|
||||
- [1017.Convert-to-Base--2]({{< relref "/ChapterFour/1017.Convert-to-Base--2.md" >}})
|
||||
- [1018.Binary-Prefix-Divisible-By-5]({{< relref "/ChapterFour/1018.Binary-Prefix-Divisible-By-5.md" >}})
|
||||
- [1019.Next-Greater-Node-In-Linked-List]({{< relref "/ChapterFour/1019.Next-Greater-Node-In-Linked-List.md" >}})
|
||||
- [1020.Number-of-Enclaves]({{< relref "/ChapterFour/1020.Number-of-Enclaves.md" >}})
|
||||
- [1021.Remove-Outermost-Parentheses]({{< relref "/ChapterFour/1021.Remove-Outermost-Parentheses.md" >}})
|
||||
|
Reference in New Issue
Block a user