zoukankan      html  css  js  c++  java
  • 剑指offer-第四章解决面试题思路(字符串的排序)

    题目:输入一个字符串,打印出该字符串的全排列。

    思路:将整个字符串分成两部分,第一部分为一个字符,将该字符和该字符后面的字符(直到最后一个字符)依次交换,确定第一个字符;然后固定第一个字符,将后面的字符也按照这种思维递归,即可完成整个字符串的排列。

    如图所示:

    Java代码:

    public class StringPermutation {
        public void permutation(char[] s){
            if(s==null)
                return;
            permutation(s,0);
        }
    
        public void permutation(char[] s, int begin) {
            if(begin==s.length)
                System.out.println(s);
            else{
                for(int i=begin;i<s.length;i++){
                    swrap(s,begin,i);
                    permutation(s,begin+1);
                    swrap(s,begin,i);
                }
                
            }
        }
        public void swrap(char[] s,int m,int n){
            char temp=s[m];
            s[m]=s[n];
            s[n]=temp;
        }
        public static void main(String[] args){
            char[] s={'a','b','c'};
            StringPermutation sp=new StringPermutation();
            sp.permutation(s);
        }
    }
  • 相关阅读:
    acwing 116. 飞行员兄弟
    leetcode 1041. 困于环中的机器人
    acwing 110 防晒
    acwing 167. 木棒
    AcWing 166. 数独
    solr4.7新建core
    solr4.7新建core
    Solr4.7从文件创建索引
    Solr4.7从文件创建索引
    Solr4.7从文件创建索引
  • 原文地址:https://www.cnblogs.com/hupp/p/4744822.html
Copyright © 2011-2022 走看看