Voici la question que j'ai récemment rencontrée. Je sais que cette question est vraiment ancienne, mais j'ai encore besoin d'un peu d'aide parce que je suis encore trop jeune.Objectif C: Problèmes de génération de parenthèses
ici est mon code
- (void)generateParentheses:(int)n{
for (int i = 1; i <= n; i++) {
[self generateParentheses:@"" open:0 close:0 pairs:i];
}
}
- (void)generateParentheses:(NSString *)output open:(int)open close:(int)close pairs:(int)pairs{
if ((open == pairs) && (close == pairs)) {
NSLog(@"%@",output);
}
else {
if (open < pairs) {
output = [output stringByAppendingString:@"("];
[self generateParentheses:output open:open+1 close:close pairs:pairs];
}
if (close < open) {
output = [output stringByAppendingString:@")"];
[self generateParentheses:output open:open close:close+1 pairs:pairs];
}
}
}
ici est le résultat lorsque n = 2
()
(())
(()()
lorsque n = 3, il y a beaucoup de parenthèses non bien formés. lorsque j'utilise le débogage, j'ai trouvé que lorsque open = 1, close = 0, la sortie est @ "((". Il a été surpris et je ne savais pas pourquoi. "("?
quelqu'un peut me aider un peu?
oh mon dieu !!!! vous avez 100% raison, merci beaucoup! – iceChao