• 22 字符串专题: 字符串的排列问题


    0 引言

    题目描述:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符
    a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。

    1 抽象问题具体化

    举例1: 输入abbc,按照字典顺序输出所有可能排列.

    输出:abbc, abcb, acbb, bbac, bbca, bcab, bcba, cabb, cbab, cbba. 总共十种情况

    举例2:输入abbbc,按照字典顺序输出所有可能排列.

    输出: abbbc, abbcb, abcbb, acbbb, babbc, bbabc, bbbac, bbbca, bbcba, bcbba, 

    2 具体问题抽象分析

    (1)排序

    (2)生成序列,打印

    (3)保证前后的两个序列不重复

    3 demo

      1. 排序算法用插入排序即可

      for(int i=1;i<str.size(); ++i){

        for(int j=i; j>0; --j){

          if((str[j]-str[j-1]) < 0){

            char temp = str[j];

            str[j] = str[j-1];

            str[j-1] = temp;

          }

        }  

      }

      2. 生成序列

      3. 判断两个序列是否重复

  • 相关阅读:
    关于欧拉函数
    JavaWeb技术
    jQuery介绍
    Spring之事务管理
    Hibernate课堂笔记
    JSON简介
    Ajax简介
    Java代码生成图片验证码
    JAVA学习笔记——ClassLoader中getResource方法的路径参数
    JAVA OOP学习笔记——多态(polymorphism)
  • 原文地址:https://www.cnblogs.com/ghjnwk/p/10133865.html
Copyright © 2020-2023  润新知