Redian新闻
>
Given a string, find all its permutations without any repetition?
avatar
Given a string, find all its permutations without any repetition?# JobHunting - 待字闺中
l*r
1
Any idea?
Especailly for the case that there are multiple same letters in the string.
avatar
c*a
2
use hash to check duplicate?
avatar
l*b
3
用leetcode上next permutation的办法就可以过吧
整数版本的,换成字符就好啦
vector > permute(vector &num) {
sort(num.begin(), num.end());
vector > r;
r.push_back(num);
while(nextPermute(num))
r.push_back(num);
return r;
}
bool nextPermute(vector &num) {
int i,j,n;
i = j = num.size() - 1;
while(i > 0 && num[i] <= num[i-1])
--i;
n = i - 1;
if(n < 0) return false;
else{
while(i < j)
swap(num[i++], num[j--]);
i = n + 1;
while(num[i] <= num[n])
++i;
swap(num[i], num[n]);
return true;
}
}
avatar
p*2
4
复杂度太高吧

【在 l*******b 的大作中提到】
: 用leetcode上next permutation的办法就可以过吧
: 整数版本的,换成字符就好啦
: vector > permute(vector &num) {
: sort(num.begin(), num.end());
: vector > r;
: r.push_back(num);
: while(nextPermute(num))
: r.push_back(num);
: return r;
: }

avatar
l*b
5
嗯,我觉得差不太多,n! 和n*n!这个比较

【在 p*****2 的大作中提到】
: 复杂度太高吧
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。