美文网首页
【算法】字符串的排列(Java)

【算法】字符串的排列(Java)

作者: 尼古拉斯小韭菜 | 来源:发表于2021-08-18 11:13 被阅读0次

题目

输入一个字符串,打印出该字符串中的字符的所有排列,例如输入字符串abc;则打印出由字符a,b,c排列出来的所有字符串abc,acb,bac,bca,cab,cba.

步骤

利用递归思想,把一个字符看成由两部分组成,第一部分未他的第一个字符,第二部分是后边的所有字符。
(1)把字符串分为两部分,一部分是字符串的第一个字符,另一部分是第一个字符以后的所有字符
(2)拿第一个字符和他后边的所有字符逐个交换

代码

...

public static void main(String[] args) {
    char[] str = "abc".toCharArray();
    permutation(str, 0);
}

public static void permutation(char[] array, int index) {
    if(index == array.length -1){
        System.out.println(array);
    } else {
        for (int i = index; i < array.length; i++) {
            char temp = array[i];
            array[i] = array[index];
            array[index] = temp;
            
            permutation(array, index + 1);
            
            temp = array[i];
            array[i] = array[index];
            array[index] = temp;
            
        }
    }
}

...

相关文章

  • 【算法】字符串的排列(Java)

    题目 输入一个字符串,打印出该字符串中的字符的所有排列,例如输入字符串abc;则打印出由字符a,b,c排列出来的所...

  • 算法复习之字符串(1)

    (1)字符串循环左移 | 字符串全排列(递归,非递归)《本节内容》(2)KMP算法| BF算法(3 字符串的最...

  • 38-字符串的排列-排列组合

    排列 输入一个字符串,打印出该字符串中字符的所有排列。 排列算法基于交换,将当前项与后面的每一项都进行一次交换,就...

  • 算法-字符串之全排列

    字符串的全排列是字符串类的算法题的一个考察点,属于普通问题,它有两种实现方法,递归算法和非递归算法,非递归的方法要...

  • 全排列的非递归算法

    import java.util.Arrays; //全排列的非递归算法 public class FullPer...

  • Minimum Window Substring 最小覆盖子串

    算法 字符串 双指针 2016-03-02 公司要出套Java面试题, 写到算法处理字符串这段,想起MWS算法,比...

  • 2022-02-15 1380. 矩阵中的幸运数

    送分题 java版本: 剑指offer 38:字符串的排列类似于全排列+支持相同字符Go版本:

  • P254-字符串的排列

    排列总结: 字符串的全排列和组合算法 1.递归实现 2.非递归实现 qsort函数、sort函数 (精心整理篇) ...

  • iOS面试题汇总---算法类

    字符串 【3】最长回文子串 【3】最长无重复子串 【1*】字符串转数字 【4】KMP 算法 【2】字符串全排列 【...

  • 字符串的排列(java)

    题目描述: 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c...

网友评论

      本文标题:【算法】字符串的排列(Java)

      本文链接:https://www.haomeiwen.com/subject/tfkgbltx.html