[Leetcode] 385. Mini Parser

이강혁·2024년 6월 25일
0

leetcode

목록 보기
11/17

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를 반환하고 아니라면 해당 문자열을 기준으로 돌아가는 방식으로 풀이했다.

profile
사용자불량

0개의 댓글