zoukankan      html  css  js  c++  java
  • 字符串穷举算法(STL)

    这里实现的功能是给出一个任意序列的字符串组合,程序会产生包含所有字符的组合,算法部分用到了C++ STL中的next_permutation()函数,并计算耗时(用到了Win32 API)。代码很简单,就不加注释了....

    1 #include <iostream>
    2 #include <string>
    3 #include <algorithm>
    4 #include <windows.h>
    5  using namespace std;
    6
    7  int main()
    8 {
    9 string letters;
    10 cout<<">>>>> Enter the STRING to TEST: (quit to quit):";
    11
    12 while (cin>>letters && letters!="quit")
    13 {
    14 SYSTEMTIME _time1,_time2;
    15 float interval;
    16 GetLocalTime(&_time1);
    17
    18 cout<<"Permutations of"<<letters<<endl;
    19 sort(letters.begin(),letters.end());
    20 cout<<letters<<endl;
    21 double count=1;
    22
    23 while(next_permutation(letters.begin(),letters.end()))
    24 {
    25 cout<<letters<<endl;
    26 ++count;
    27 }
    28
    29 cout<<">>>>> The aumount:"<<count<<endl;
    30 cout<<endl;
    31
    32 GetLocalTime(&_time2);
    33 interval=(_time2.wMinute-_time1.wMinute)*60;
    34 interval+=_time2.wSecond-_time1.wSecond;
    35 interval*=1000;
    36 interval+=(_time2.wMilliseconds-_time1.wMilliseconds);
    37 interval/=1000;
    38
    39 printf(">>>>>耗时: %f 秒\n",interval );
    40 cout<<endl;
    41 cout<<">>>>> Enter next STRING to TEST (quit to quit):";
    42 }
    43 system("pause");
    44 return 0;
    45 }
    46  

    当输入12345678 程序运行效果如下:

    
    
    
  • 相关阅读:
    Maven项目类型和JAVASE项目和JAVAEE项目的关系
    使用faker 生成测试数据
    python 面向对象
    python csv读写
    分治
    django 部署
    js 时间格式转换
    python环境
    枚举
    递归
  • 原文地址:https://www.cnblogs.com/hicjiajia/p/1823388.html
Copyright © 2011-2022 走看看