Skip to content

Add Generate Parentheses solution and explanation#12

Open
yakataN wants to merge 1 commit into
mainfrom
Generate-Parentheses
Open

Add Generate Parentheses solution and explanation#12
yakataN wants to merge 1 commit into
mainfrom
Generate-Parentheses

Conversation

@yakataN
Copy link
Copy Markdown
Owner

@yakataN yakataN commented Sep 10, 2025

generated_parenthesis.pop()

generate_parenthesis_helper(0, 0, [])
return result
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

読みやすいと思います。個人的には変数名にgeneratedやparenthesisが若干くどいような気もしますが好みの範囲かもしれません(used_open: int, used_close: int, parenthesis: List[str]ぐらいでもいいような気がします)

return list(result)

return generate_parenthesis_helper(n)
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ヘルパー関数使わずに書けますね。

class Solution:
    def generateParenthesis(self, n: int) -> List[str]:
        if n == 0:
            return [""]
        result = set()
        for pattern in self.generateParenthesis(n - 1):
            for index in range(len(pattern) + 1):
                result.add(pattern[:index] + "()" + pattern[index:])
        return list(result)

for pattern in parentheses[i]:
for index in range(len(pattern)+1):
parentheses[i+1].add(pattern[:index]+"()"+pattern[index:])
return list(parentheses[-1])
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i-1のパターンからiのパターンを生み出しているので直近のパターンを持っていれば十分で、以下のように i を使わずに済みます。

class Solution:
    def generateParenthesis(self, n: int) -> List[str]:
        parentheses = {""}
        for _ in range(n):
            next_parentheses = set()
            for pattern in parentheses:
                for index in range(len(pattern) + 1):
                    next_parentheses.add(pattern[:index] + "()" + pattern[index:])
            parentheses = next_parentheses
        return list(parentheses)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants