Popular Posts

Sunday, March 27, 2011

Matching Braces Using Tail Recursion

Write a function to generate all possible n pairs of balanced parentheses.
For example, if n=1
{}
for n=2
{}{}
{{}}

Use tail recursion
public class GeneratePairedParanthesis {

public static void main(String[] args) {
generate("", 0, 0, 3);
}

public static void generate(String s, int open, int close, int n) {
if (open == n && close == n) {
System.out.println("" + s);
return;
}
if (close > open)
return;

if (open >= close && open < n) {
generate(s + "{", open + 1, close, n);
}
if (close < open) {
generate(s + "}", open, close + 1, n);
}
}
}

Refer : http://tech-queries.blogspot.com/2009/01/valid-parenthesis-sequences.html

No comments:

Post a Comment