zoukankan      html  css  js  c++  java
  • 面试题28.字符串的排列

    题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,

    则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba.

    此题的主要步骤由如下几步:

    1.求出所有可能出现在第一个位置的字符

    2.将第一个字符与后面字符分别交换

    3.将第一个字符后面的字符递归步骤1,2

    代码如下:

     1 #include <iostream>
     2 using namespace std;
     3 
     4 void FunOfString(char* Str,char* Begin)
     5 {
     6     if(!Str||!Begin)
     7     {
     8         return;
     9     }
    10 
    11     if(*Begin=='')
    12     {
    13         cout<<Str<<endl;
    14     }
    15     else
    16     {
    17         for(char* ch=Begin;*ch!='';ch++)
    18         {
    19             char temp;
    20             temp=*ch;
    21             *ch=*Begin;
    22             *Begin=temp;
    23 
    24             FunOfString(Str,Begin+1);
    25 
    26             temp=*ch;
    27             *ch=*Begin;
    28             *Begin=temp;
    29         }    
    30     }
    31 }
    32 
    33 int main()
    34 {
    35     char Str[]="vpoet";
    36     FunOfString(Str,Str);
    37     system("pause");
    38     return 0;
    39 }

    运行截图:

  • 相关阅读:
    logging- 日志记录
    apscheduler -定时任务
    mysql
    Time-python
    pandas 常用语句
    re 正则
    sublime text3的快捷键
    git 常用操作
    tf.nn的conv2d卷积与max_pool池化
    WebApi 接口返回值类型详解 ( 转 )
  • 原文地址:https://www.cnblogs.com/vpoet/p/4770966.html
Copyright © 2011-2022 走看看