字符串全排

2021/7/21 23:14:06

本文主要是介绍字符串全排,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

  

字符串全排

         对字符串进行全排,就是对去掉某一个字符的字符串进行去全排,全排之后再加上去掉的那个字符。以此类推,对n个长度的字符进行全排,就要对n-1个长度的字符串进行全排,对n-1个长度的字符进行全排,就要对n-2个长度的字符串进行全排、、、、、

并且对每个长度的字符串的排序方式相同,所以要用递归。

代码如下 :

vector<string> permultation(string str)

{

    vector<string>result;

    if (str.size() == 0)

    {

       result.push_back(str);

       return result;

    }

    int len = str.size();

    for (int i = 0; i < len; i++)

    {

       string short_str = str.substr(0, i) + str.substr(i + 1);//获取除了第i项之外的全部字符串

        vector<string>short_arr = permultation(short_str);//对n-1项的字符串进行全排

       int len1 = short_arr.size();

       for (int j = 0; j < len1; j++)//将全排的结果加上该字符串

       {

           string long_word= str[i]+short_arr[j];

           result.push_back(long_word);

       }

    }

    return result;//返回字符串数组

}



这篇关于字符串全排的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程