• poj 1256 按一定顺序输出全排列(next_permutation)


    Sample Input

    3
    aAb
    abc
    acba
    Sample Output

    Aab
    Aba
    aAb
    abA
    bAa
    baA
    abc
    acb
    bac
    bca
    cab
    cba
    aabc
    aacb
    abac
    abca
    acab
    acba
    baac
    baca
    bcaa
    caab
    caba
    cbaa

    对字符串进行全排列,字符的大小规则: 'A'<'a'<'B'<'b'<...<'Z'<'z'.

     1 # include <iostream>  
     2 # include <cstring>
     3 # include <algorithm>  
     4 using namespace std;  
     5   
     6   
     7 bool cmp(const char &a, const char &b)
     8    {
     9     if (tolower(a) == tolower(b))  //把字符转换成小写字母,非字母字符不做出处理 
    10    {
    11        return a < b;
    12     }
    13     else
    14        return tolower(a) < tolower(b);
    15 
    16 }
    17   
    18 int main()  
    19 {  
    20     int num = 0;  
    21     cin >> num;  
    22     while(num--)  
    23     {  
    24         char str[100];  
    25         cin >> str;  
    26         int length = strlen(str);  
    27         sort(str, str+length, cmp);  
    28         cout << str << endl;  
    29         while(next_permutation(str, str + length, cmp))  //全排列 
    30         {  
    31             cout << str << endl;  
    32         }  
    33     }  
    34     return 0;  
    35 }  
    View Code
  • 相关阅读:
    Webpack安装及基础配置
    相机拍到了光源的灯珠图像
    面向对象特殊用法
    面向对象初始
    内置函数和必须的模块
    模块基本模式
    函数三
    函数二
    装饰器
    函数初识
  • 原文地址:https://www.cnblogs.com/mengchunchen/p/4497974.html
Copyright © 2020-2023  润新知