【问题标题】:Get All possible number of combinations [duplicate]获取所有可能的组合数量[重复]
【发布时间】:2017-09-18 06:41:23
【问题描述】:

我需要访问字符串中所有可能数量的字符组合。不使用任何循环,因为我必须过滤数千个记录。循环会产生性能问题。 让我们举个例子: 任何自定义方法 ABCD ===>> ABCD,ABDC,ACBD,ACDB,ADCB,BACD,BADC,BCAD,BCDA,BDAC,BDCA,CADB,CBDA,CDBA,CBAD,DABC,DBCA,DCBA,DCAB......

提前致谢

【问题讨论】:

  • 你试过别人吗?如果是这样,你能告诉我们吗?或者这是一个“请帮我做”的案例?
  • 有点未指定。字符串字符可以重复吗,还是都是唯一的?
  • 是的,亲爱的,独一无二,不容错过
  • 我投票决定将此问题作为题外话结束,因为 SO 不是代码编写服务!
  • C!=C++!=Objective C 请只选择一种语言。

标签: c++ objective-c c


【解决方案1】:

实际上在 C++ 标准库中有一个函数可以做到这一点:std::next_permutation。这是链接中的示例,适用于您的情况。

#include <algorithm>
#include <string>
#include <iostream>

int main()
{
    std::string s = "ABCD";
    std::sort(s.begin(), s.end());
    do
    {
        std::cout << s << '\n';
    }
    while(std::next_permutation(s.begin(), s.end()));
}

在线here

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-06
相关资源
最近更新 更多