void getFullPerMutation(vector<string>&res, string&p,int begin)
{
int len = p.size();
if (begin >= len)
{
res.push_back(p);
return;
}
for (int i=begin;i<len;++i)
{
//if (i>begin&&i > 0 && p[i] == p[i - 1])continue;
swap(p[begin], p[i]);
getFullPerMutation(res, p, begin + 1); //**begin+1**
swap(p[begin], p[i]);
}
}
上面这个算法采用的递归,注释的那行用来解决当原来序列存在相邻元素相同的情况,使用条件是原序列必先经过排序处理