mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-05 00:25:22 +08:00
规范格式
This commit is contained in:
17
leetcode/0942.DI-String-Match/942. DI String Match.go
Normal file
17
leetcode/0942.DI-String-Match/942. DI String Match.go
Normal file
@ -0,0 +1,17 @@
|
||||
package leetcode
|
||||
|
||||
func diStringMatch(S string) []int {
|
||||
result, maxNum, minNum, index := make([]int, len(S)+1), len(S), 0, 0
|
||||
for _, ch := range S {
|
||||
if ch == 'I' {
|
||||
result[index] = minNum
|
||||
minNum++
|
||||
} else {
|
||||
result[index] = maxNum
|
||||
maxNum--
|
||||
}
|
||||
index++
|
||||
}
|
||||
result[index] = minNum
|
||||
return result
|
||||
}
|
52
leetcode/0942.DI-String-Match/942. DI String Match_test.go
Normal file
52
leetcode/0942.DI-String-Match/942. DI String Match_test.go
Normal file
@ -0,0 +1,52 @@
|
||||
package leetcode
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
type question942 struct {
|
||||
para942
|
||||
ans942
|
||||
}
|
||||
|
||||
// para 是参数
|
||||
// one 代表第一个参数
|
||||
type para942 struct {
|
||||
S string
|
||||
}
|
||||
|
||||
// ans 是答案
|
||||
// one 代表第一个答案
|
||||
type ans942 struct {
|
||||
one []int
|
||||
}
|
||||
|
||||
func Test_Problem942(t *testing.T) {
|
||||
|
||||
qs := []question942{
|
||||
|
||||
question942{
|
||||
para942{"IDID"},
|
||||
ans942{[]int{0, 4, 1, 3, 2}},
|
||||
},
|
||||
|
||||
question942{
|
||||
para942{"III"},
|
||||
ans942{[]int{0, 1, 2, 3}},
|
||||
},
|
||||
|
||||
question942{
|
||||
para942{"DDI"},
|
||||
ans942{[]int{3, 2, 0, 1}},
|
||||
},
|
||||
}
|
||||
|
||||
fmt.Printf("------------------------Leetcode Problem 942------------------------\n")
|
||||
|
||||
for _, q := range qs {
|
||||
_, p := q.ans942, q.para942
|
||||
fmt.Printf("【input】:%v 【output】:%v\n", p, diStringMatch(p.S))
|
||||
}
|
||||
fmt.Printf("\n\n\n")
|
||||
}
|
48
leetcode/0942.DI-String-Match/README.md
Executable file
48
leetcode/0942.DI-String-Match/README.md
Executable file
@ -0,0 +1,48 @@
|
||||
# [942. DI String Match](https://leetcode.com/problems/di-string-match/)
|
||||
|
||||
|
||||
## 题目
|
||||
|
||||
Given a string `S` that **only** contains "I" (increase) or "D" (decrease), let `N = S.length`.
|
||||
|
||||
Return **any** permutation `A` of `[0, 1, ..., N]` such that for all `i = 0, ..., N-1`:
|
||||
|
||||
- If `S[i] == "I"`, then `A[i] < A[i+1]`
|
||||
- If `S[i] == "D"`, then `A[i] > A[i+1]`
|
||||
|
||||
**Example 1:**
|
||||
|
||||
Input: "IDID"
|
||||
Output: [0,4,1,3,2]
|
||||
|
||||
**Example 2:**
|
||||
|
||||
Input: "III"
|
||||
Output: [0,1,2,3]
|
||||
|
||||
**Example 3:**
|
||||
|
||||
Input: "DDI"
|
||||
Output: [3,2,0,1]
|
||||
|
||||
**Note:**
|
||||
|
||||
1. `1 <= S.length <= 10000`
|
||||
2. `S` only contains characters `"I"` or `"D"`.
|
||||
|
||||
|
||||
## 题目大意
|
||||
|
||||
给定只含 "I"(增大)或 "D"(减小)的字符串 S ,令 N = S.length。返回 [0, 1, ..., N] 的任意排列 A 使得对于所有 i = 0, ..., N-1,都有:
|
||||
|
||||
- 如果 S[i] == "I",那么 A[i] < A[i+1]
|
||||
- 如果 S[i] == "D",那么 A[i] > A[i+1]
|
||||
|
||||
|
||||
|
||||
## 解题思路
|
||||
|
||||
|
||||
- 给出一个字符串,字符串中只有字符 `"I"` 和字符 `"D"`。字符 `"I"` 代表 `A[i] < A[i+1]`,字符 `"D"` 代表 `A[i] > A[i+1]` ,要求找到满足条件的任意组合。
|
||||
- 这一题也是水题,取出字符串长度即是最大数的数值,然后按照题意一次排出最终数组即可。
|
||||
|
Reference in New Issue
Block a user