专栏首页Don的成长史字符串的排列

字符串的排列

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_42449444/article/details/94058357

题目描述:

输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。

输入描述:

输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母,例如ac

输出描述:

[ac, ca]

输入样例:

acc

输出样例:

[acc, cac, cca]

解题思路:

蘑菇街19年校招题,一个典型的全排列问题。关于全排列问题,之前写到过一篇博文:全排列 next_permutation的使用,这里就不再介绍next_permutation了。需要注意的是:题目给出的字符串不一定是升序的,有个测试点是aA,如果不先用sort把字符串str升序排列一遍字符串的话,这个测试点会报错(预期输出是[Aa, aA],而实际输出会是[aA])。

AC代码:

#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    string str;
    bool isVirgin = true;   //判断是不是第一次
    while(getline(cin,str))
    {
        string result = "";   //结果字符串
        sort(str.begin(), str.end());   //题目中给出的字符串不一定是升序,有个测试点是aA,所以我们自己先升序排列一遍
        do{
            if(isVirgin)
            {
                result += "[" + str;
                isVirgin = false;
            }
            else
            {
                result += ", " + str;  //注意逗号后面有个空格
            }
        }while(next_permutation(str.begin(),str.end()));   //全排列
        result += "]";
        cout << result << endl;
    }
    return 0;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 字符串压缩

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    喜欢ctrl的cxk
  • 构建短字符串

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    喜欢ctrl的cxk
  • 【GPLT】L1-011 A-B

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    喜欢ctrl的cxk
  • python3 str各个功能记录

    py3study
  • Python补充11 序列的方法 正则表达式 (re包)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

    bear_fish
  • MySQL常用函数汇总

    我整理的另一篇文章 MySQL常用系统表汇总 : https://blog.fastrun.cn/2016/07/10/1-27/

    CrazyCodes
  • 一文让你彻底搞懂`__str__`和`__repr__`?

    我们都知道,Python的内置函数repr()能够把对象用字符串的形式表达出来,方便我们辨认。这就是“字符串表示形式”。repr()就是通过__repr__这个...

    宇宙之一粟
  • Python补充01 序列的方法

    在快速教程中,我们了解了最基本的序列(sequence)。回忆一下,序列包含有定值表(tuple)和表(list)。此外,字符串(string)是一种特殊的定值...

    Vamei
  • 一起来聊聊,那些你不知道的 MySQL 函数

    mysql 也是从5.0 开始支持的函数,调用函数可以减少数据在数据库和应用服务器上的传输,对于提高数据处理的效率。

    八点半的Bruce、D
  • js字符串/数组常用方法总结

    str.charAt(index); 从一个字符串中获取索引为index的字符。

    Daotin

扫码关注云+社区

领取腾讯云代金券