幂集在词典顺序.递归和bac跟踪

提问

我是新的递归和回溯。在执行递归调用后如何代码? 我无法理解在for循环中跟踪是如何进行的? 输出是:

 class Solution {
// str : Stores input string
// n : Length of str.
// curr : Stores current permutation
// index : Index in current permutation, curr
static void permuteRec(String str, int n,
                       int index, String curr)
{
    // base case
    if (index == n) {
        return;
    }
    System.out.println(curr);
    for (int i = index + 1; i < n; i++) {
        curr += str.charAt(i);
        permuteRec(str, n, i, curr);
        // backtracking
        curr = curr.substring(0, curr.length() - 1);
    }
    return;
}
// Generates power set in lexicographic
// order.
static void powerSet(String str)
{
    char[] arr = str.toCharArray();
    Arrays.sort(arr);
    permuteRec(new String(arr), str.length(), -1, "");
}
// Driver code
public static void main(String[] args)
{
    String str = "abc";
    powerSet(str);
}
}

a ab b c ca cab cb 

▼版权说明

相关文章也很精彩
推荐内容
更多标签
相关热门
全站排行
随便看看

错说cuoshuo.com——程序员的报错记录

部分内容根据CC版权协议转载,如果您希望取消转载请发送邮件到cuoshuo8@163.com

辽ICP备19011660号-5