https://leetcode.com/problems/mini-parser/description/
Input: s = "[123,[456,[789]]]"
Output: [123,[456,[789]]]
Input 처럼 생긴 문자열을 Output처럼 만들라고 하는 문제이다.
처음에 코드 제대로 안 읽고
# """
# This is the interface that allows for creating nested lists.
# You should not implement it, or speculate about its implementation
# """
이걸 안 봐서 NestedInteger 클래스 고치려고 했었는데 손을 안 대도 되는 거였다.
한참 헤매다가 Solution 중에 6줄짜리 코드로 짠게 있어서 참고했다.
class Solution:
def deserialize(self, s: str) -> NestedInteger:
return self.find(eval(s))
def find(self, s) -> NestedInteger:
if type(s) == type(1):
return NestedInteger(s)
n = NestedInteger()
for x in s:
n.add(self.find(x))
return n
Input처럼 생긴것도 eval 안에 들어가면 배열로 바꿔준다는 것을 활용한 풀이였다.
그래서 s를 돌면서 숫자라면 NestedIntger를 반환하고 아니라면 해당 문자열을 기준으로 돌아가는 방식으로 풀이했다.