【发布时间】:2012-10-14 20:19:08
【问题描述】:
有人要求我编写一个使用递归的置换函数。该函数的唯一参数应该是我应该找到所有排列的字符串。该函数应返回具有所有可能排列的向量。我知道我可以在 STL 算法中使用 next_permutation,但有人要求我不要这样做。
我已经设置了基本情况,并且我知道我需要一个 for 循环,但我不太确定从那里去哪里。有人能指出我正确的方向吗?
vector <string> getPerm(string str)
{
vector<string> v;
if(w.length() <= 1)
{
v.push_back(str);
return v;
}
else
{
for(int i = 0; i < str.size(); i++)
{
//Some code
}
}
}
任何帮助将不胜感激。
【问题讨论】:
-
这是一个simple algorithm,用于创建连续排列,这可能会让你开始
-
@Collin 我认为这正是我所需要的!
-
如果你正在编写一个使用递归的算法,你真的不想看科林的算法或
next_permutation,因为它们都不是递归的。 -
@RondogiannisAristophanes 这不是重复的,因为那个版本不是递归的,而这个是。
标签: c++ vector permutation