算法1678. 设计 Goal 解析器(java / c / c++ / python / go / rust)
Posted 二当家的白帽子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法1678. 设计 Goal 解析器(java / c / c++ / python / go / rust)相关的知识,希望对你有一定的参考价值。
文章目录
- 1678. 设计 Goal 解析器:
- 样例 1:
- 样例 2:
- 样例 3:
- 提示:
- 分析
- 题解
- 原题传送门:https://leetcode-cn.com/problems/goal-parser-interpretation/
1678. 设计 Goal 解析器:
请你设计一个可以解释字符串 command
的 Goal 解析器 。command
由 "G"
、"()"
和/或 "(al)"
按某种顺序组成。Goal 解析器会将 "G"
解释为字符串 "G"
、"()"
解释为字符串 "o"
,"(al)"
解释为字符串 "al"
。然后,按原顺序将经解释得到的字符串连接成一个字符串。
给你字符串 command
,返回 Goal 解析器 对 command
的解释结果。
样例 1:
输入:
command = "G()(al)"
输出:
"Goal"
解释:
Goal 解析器解释命令的步骤如下所示:
G -> G
() -> o
(al) -> al
最后连接得到的结果是 "Goal"
样例 2:
输入:
command = "G()()()()(al)"
输出:
"Gooooal"
样例 3:
输入:
command = "(al)G(al)()()G"
输出:
"alGalooG"
提示:
1 <= command.length <= 100
command
由"G"
、"()"
和/或"(al)"
按某种顺序组成
分析
- 面对这道算法题目,我陷入了沉思,同样是简单题,但还真的不是一样简单。
- 有replace接口的,这题完全没有什么可考虑的。
- 如果是自己处理,
"G"
很容易区分出来,只有"()"
和"(al)"
仅靠第一个字母无法区分,所以需要去取一下后面的字符。
题解
java
class Solution
public String interpret(String command)
command = command.replace("(al)", "al").replace("()", "o");
return command;
c
char * interpret(char * command)
int len = strlen(command);
char *ans = (char *) malloc((len + 1) * sizeof(char));
int i = 0;
while (*command)
if (*command == 'G')
ans[i++] = 'G';
++command;
else if (*(command + 1) == ')')
ans[i++] = 'o';
command += 2;
else
ans[i++] = 'a';
ans[i++] = 'l';
command += 4;
ans[i] = '\\0';
return ans;
c++
class Solution
public:
string interpret(string command)
string ans;
int i = 0;
while (i < command.length())
if (command[i] == 'G')
ans += 'G';
++i;
else if (command[i + 1] == ')')
ans += 'o';
i += 2;
else
ans += "al";
i += 4;
return ans;
;
python
class Solution:
def interpret(self, command: str) -> str:
return command.replace('(al)', 'al').replace('()', 'o')
go
func interpret(command string) string
command = strings.ReplaceAll(command, "(al)", "al")
command = strings.ReplaceAll(command, "()", "o")
return command
rust
impl Solution
pub fn interpret(command: String) -> String
command.replace("(al)", "al").replace("()", "o")
原题传送门:https://leetcode-cn.com/problems/goal-parser-interpretation/
非常感谢你阅读本文~
欢迎【👍点赞】【⭐收藏】【📝评论】~
放弃不难,但坚持一定很酷~
希望我们大家都能每天进步一点点~
本文由 二当家的白帽子:https://le-yi.blog.csdn.net/ 博客原创~
以上是关于算法1678. 设计 Goal 解析器(java / c / c++ / python / go / rust)的主要内容,如果未能解决你的问题,请参考以下文章
算法1678. 设计 Goal 解析器(java / c / c++ / python / go / rust)
请你设计一个可以解释字符串 command 的 Goal 解析器
请你设计一个可以解释字符串 command 的 Goal 解析器