mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-05 00:25:22 +08:00
Add Weekly Contest 218
This commit is contained in:
@ -0,0 +1,22 @@
|
||||
package leetcode
|
||||
|
||||
func interpret(command string) string {
|
||||
if command == "" {
|
||||
return ""
|
||||
}
|
||||
res := ""
|
||||
for i := 0; i < len(command); i++ {
|
||||
if command[i] == 'G' {
|
||||
res += "G"
|
||||
} else {
|
||||
if command[i] == '(' && command[i+1] == 'a' {
|
||||
res += "al"
|
||||
i += 3
|
||||
} else {
|
||||
res += "o"
|
||||
i++
|
||||
}
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
package leetcode
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
type question1678 struct {
|
||||
para1678
|
||||
ans1678
|
||||
}
|
||||
|
||||
// para 是参数
|
||||
// one 代表第一个参数
|
||||
type para1678 struct {
|
||||
command string
|
||||
}
|
||||
|
||||
// ans 是答案
|
||||
// one 代表第一个答案
|
||||
type ans1678 struct {
|
||||
one string
|
||||
}
|
||||
|
||||
func Test_Problem1678(t *testing.T) {
|
||||
|
||||
qs := []question1678{
|
||||
|
||||
{
|
||||
para1678{"G()(al)"},
|
||||
ans1678{"Goal"},
|
||||
},
|
||||
|
||||
{
|
||||
para1678{"G()()()()(al)"},
|
||||
ans1678{"Gooooal"},
|
||||
},
|
||||
|
||||
{
|
||||
para1678{"(al)G(al)()()G"},
|
||||
ans1678{"alGalooG"},
|
||||
},
|
||||
}
|
||||
|
||||
fmt.Printf("------------------------Leetcode Problem 1678------------------------\n")
|
||||
|
||||
for _, q := range qs {
|
||||
_, p := q.ans1678, q.para1678
|
||||
fmt.Printf("【input】:%v 【output】:%v\n", p, interpret(p.command))
|
||||
}
|
||||
fmt.Printf("\n\n\n")
|
||||
}
|
73
leetcode/1678.Goal-Parser-Interpretation/README.md
Normal file
73
leetcode/1678.Goal-Parser-Interpretation/README.md
Normal file
@ -0,0 +1,73 @@
|
||||
# [1678. Goal Parser Interpretation](https://leetcode.com/problems/goal-parser-interpretation/)
|
||||
|
||||
## 题目
|
||||
|
||||
You own a **Goal Parser** that can interpret a string `command`. The `command` consists of an alphabet of `"G"`, `"()"` and/or `"(al)"` in some order. The Goal Parser will interpret `"G"` as the string `"G"`, `"()"` as the string `"o"`, and `"(al)"` as the string `"al"`. The interpreted strings are then concatenated in the original order.
|
||||
|
||||
Given the string `command`, return *the **Goal Parser**'s interpretation of* `command`.
|
||||
|
||||
**Example 1:**
|
||||
|
||||
```
|
||||
Input: command = "G()(al)"
|
||||
Output: "Goal"
|
||||
Explanation: The Goal Parser interprets the command as follows:
|
||||
G -> G
|
||||
() -> o
|
||||
(al) -> al
|
||||
The final concatenated result is "Goal".
|
||||
```
|
||||
|
||||
**Example 2:**
|
||||
|
||||
```
|
||||
Input: command = "G()()()()(al)"
|
||||
Output: "Gooooal"
|
||||
```
|
||||
|
||||
**Example 3:**
|
||||
|
||||
```
|
||||
Input: command = "(al)G(al)()()G"
|
||||
Output: "alGalooG"
|
||||
```
|
||||
|
||||
**Constraints:**
|
||||
|
||||
- `1 <= command.length <= 100`
|
||||
- `command` consists of `"G"`, `"()"`, and/or `"(al)"` in some order.
|
||||
|
||||
## 题目大意
|
||||
|
||||
请你设计一个可以解释字符串 command 的 Goal 解析器 。command 由 "G"、"()" 和/或 "(al)" 按某种顺序组成。Goal 解析器会将 "G" 解释为字符串 "G"、"()" 解释为字符串 "o" ,"(al)" 解释为字符串 "al" 。然后,按原顺序将经解释得到的字符串连接成一个字符串。给你字符串 command ,返回 Goal 解析器 对 command 的解释结果。
|
||||
|
||||
## 解题思路
|
||||
|
||||
- 简单题,按照题意修改字符串即可。由于是简单题,这一题也不用考虑嵌套的情况。
|
||||
|
||||
## 代码
|
||||
|
||||
```go
|
||||
package leetcode
|
||||
|
||||
func interpret(command string) string {
|
||||
if command == "" {
|
||||
return ""
|
||||
}
|
||||
res := ""
|
||||
for i := 0; i < len(command); i++ {
|
||||
if command[i] == 'G' {
|
||||
res += "G"
|
||||
} else {
|
||||
if command[i] == '(' && command[i+1] == 'a' {
|
||||
res += "al"
|
||||
i += 3
|
||||
} else {
|
||||
res += "o"
|
||||
i ++
|
||||
}
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
```
|
Reference in New Issue
Block a user