22. Generate Parentheses

Given a digit string, return all possible letter combinations that the number could represent.
A mapping of digit to letters (just like on the telephone buttons) is given below.
Input:Digit string "23"
Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

Solution:

总结见:http://www.jianshu.com/p/883fdda93a66
思路:思路:Backtracking,但要受到括号匹配的限制,
即对于open: open < max, 对于close: close < open。

回溯dfs的顺序(perfer '(' first or ')' first)都可以
Time Complexity: 2^n Space Complexity: O(n)

Code:

class Solution {
    public List<String> generateParenthesis(int n) {
        List<String> result = new ArrayList<String>();
        StringBuilder cur_res = new StringBuilder();
        backtrack(0, 0, n, cur_res, result);
        return result;
    }
    
    public void backtrack(int open, int close, int max, StringBuilder cur_res, List<String> result) {
        if(cur_res.length() == max * 2) {
            result.add(cur_res.toString());
            return;
        }
        
        //the order of A and B can be changed. (perfer '(' first or ')' first).
        if(open < max) { //A
            cur_res.append("(");
            backtrack(open + 1, close, max, cur_res, result);
            cur_res.deleteCharAt(cur_res.length() - 1);
        }
        if(close < open) { //B 
            cur_res.append(")");
            backtrack(open, close + 1, max, cur_res, result);
            cur_res.deleteCharAt(cur_res.length() - 1);
        }

    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 13,487评论 0 23
  • 因为这学期的科学课上,老师要求每个孩子都来养蚕,观察记录蚕的一生,所以我在淘宝网上给女儿购买了蚕宝宝。 等收到一看...
    灿若星辰Amy阅读 3,952评论 0 0
  • 作者:刘少山,李文超,唐洁责编:何永灿,欢迎人工智能领域技术投稿、约稿、给文章纠错,请发送邮件至heyc@csdn...
    十人言末阅读 5,048评论 0 4
  • 前两天一时好奇,看到朋友圈里有人在说什么七年后去南极。然后又一时冲动,也报了个名。然后就根据提示,加入了007...
    Andy_2acb阅读 2,920评论 0 1
  • 我今天全单7天结束了准备今天复食,我从今年正月十五过后开始使用汁法,一直坚持半单,到现在一共全单过4次,第一次5天...
    五盛缘老爹排毒养生阅读 3,211评论 0 0