/******************************
作者:cncoderalex
博客:http://blog.youkuaiyun.com/cncoderalex
*******************************/
#include"Test.h"
#include<cstring>
#include<iostream>
#include<queue>
#include<vector>
#include<string>
using namespace std;
void Helper(char *pSrc, string strSonSeq, vector<string> &vecSonSeq)
{
if (!pSrc)
return;
if (*pSrc != '\0')
{
vecSonSeq.push_back(strSonSeq);
Helper(pSrc + 1, strSonSeq, vecSonSeq);
strSonSeq.push_back(*pSrc);
vecSonSeq.push_back(strSonSeq);
Helper(pSrc + 1, strSonSeq, vecSonSeq);
}
}
void GetSonSequence(char *pSrc, vector<string> &vecSonSeq)
{
string strSonSeq;
Helper(pSrc, strSonSeq, vecSonSeq);
sort(vecSonSeq.begin(), vecSonSeq.end());
vector<string>::iterator it = unique(vecSonSeq.begin(), vecSonSeq.end());
vecSonSeq.erase(it, vecSonSeq.end());
}
int main()
{
printf("http://blog.youkuaiyun.com/cncoderalex");
printf("\n");
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
char *pSrc = "abcd";
vector<string> vecSonSeq;
GetSonSequence(pSrc, vecSonSeq);
for (auto item : vecSonSeq)
{
cout << item << endl;
}
system("pause");
return 0;
}
求字符串的所有字序列(暴力法)
最新推荐文章于 2024-04-20 01:13:46 发布
本文介绍了一种通过递归方式生成给定字符串所有可能子序列的算法实现,并演示了如何去除重复子序列的过程。该算法使用 C++ 编写,通过对源字符串进行逐字符分解,构造出所有可能的子序列组合。
625

被折叠的 条评论
为什么被折叠?



