字符串全排
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;//返回字符串数组
}
这篇关于字符串全排的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16Maven资料入门指南
- 2024-11-16Maven资料入门教程
- 2024-11-16MyBatis Plus资料:新手入门教程与实践指南
- 2024-11-16MyBatis-Plus资料入门教程:快速上手指南
- 2024-11-16Mybatis资料入门教程:新手必看指南
- 2024-11-16MyBatis资料详解:新手入门与初级实战指南
- 2024-11-16MyBatisPlus资料:初学者入门指南与实用教程
- 2024-11-16MybatisPlus资料详解:初学者入门指南
- 2024-11-16MyBatisX资料:新手入门与初级教程
- 2024-11-16RESTful接口资料详解:新手入门指南