-
Notifications
You must be signed in to change notification settings - Fork 26
/
1678.GoalParserInterpretation.py
55 lines (48 loc) · 1.66 KB
/
1678.GoalParserInterpretation.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
'''
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:
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:
Input: command = "G()()()()(al)"
Output: "Gooooal"
Example:
Input: command = "(al)G(al)()()G"
Output: "alGalooG"
Constraints:
- 1 <= command.length <= 100
- command consists of "G", "()", and/or "(al)" in some
order.
'''
#Difficulty:Easy
#105 / 105 test cases passed.
#Runtime: 32 ms
#Memory Usage: 14.1 MB
#Runtime: 32 ms, faster than 77.40% of Python3 online submissions for Goal Parser Interpretation.
#Memory Usage: 14.1 MB, less than 90.67% of Python3 online submissions for Goal Parser Interpretation.
class Solution:
def interpret(self, command: str) -> str:
command = list(command)
l = False
for i, char in enumerate(command):
if char == 'l':
l = True
elif char == '(':
command[i] = ''
elif char == ')':
command[i] = '' if l else 'o'
l = False
return ''.join(command)