一、题目解释

输入一个字符串,输出其所有的排列组合。

PS:图片说明

VS2013环境下的代码:

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <time.h>using namespace std;bool perm(vector<int>& v)
{vector<int>::iterator left = v.end();--left;vector<int>::iterator right = left; //right指向倒数第一个--left;//left指向倒数第二个数字//找出第一对左小右大的数while (right != v.begin() && *left >= *right){if (--right != v.begin()){--left;}}if (right == v.begin())                         //当right走到最开始的位置,表示全部已经排完,不需要在进行排列{reverse(right, v.end());return false;}vector<int>::iterator last = v.end() - 1;       //指向最后一个数while (*last <= *left)                          //找出从右往左第一个比left大的数字{--last;}swap(*left, *last);                             //将last和left进行交换reverse(right, v.end());                        //在将right往后的数据进行逆置return true;
}
void Print(vector<int>& v)
{vector<int>::iterator it1 = v.begin();          //打印函数,参数为vector整形,利用迭代器访问后强制类型转换输出while (it1 != v.end()){char c = *it1;cout << c;++it1;}cout << endl;}bool cmp(int a, int b)                         //STL排序算法相关
{return a < b;
}int main()
{clock_t start, stop;start = clock();vector<int> v;                             //创建vector用来存储字符的Ascall码,用以最终的排列。string s;                                  //输入字符串cin >> s;int tmp = 0;string::iterator it = s.begin();while (it != s.end())                       //将字符串分解为字符,并将字符的Ascall码存入容器v中,用以排列{tmp = (int)*it;                         //强制类型转换为整形,存入整形容器v中。v.push_back(tmp);++it;}sort(v.begin(), v.end(), cmp);              //对vector的数据进行排序,用以后续的排序vector<int>::iterator first = v.begin();vector<int>::iterator last = v.end();int count = 0;do{Print(v);count++;} while (perm(v));                          //循环排列system("pause");                            //暂停程序,VS环境下的特殊语句
}

阿里面试题 ——输入一个字符串,输出所有的排列相关推荐

  1. Python输入一个字符串,输出其中每个字符的出现次数。要求使用标准库collotections中的Counter类...

    一.题目: 1.输入一个字符串,输出其中每个字符的出现次数.要求使用标准库collotections中的Counter类. 2.输入一个字符串,输出其中只出现了一次的字符及其下标. 3.输入一个字符串 ...

  2. c语言案例——输入一个字符串,将其逆序输出

    字符串常量可以赋值给一个字符指针或者一个字符数组,比如:  /*1*/char *str = "this is a string"; /*2*/char str2[]= " ...

  3. C语言 输入一个字符串,统计字符个数,并按照倒序输出该字符串。

    题目:C语言 输入一个字符串,统计字符个数,并按照倒序输出该字符串. #include<stdio.h>void main() {char str[10];scanf("%s&q ...

  4. 实现输入一个字符串,分别将大写字母、小写字母、数字、其他字符存到列表里面并且输出列表

    1.实现输入一个字符串,分别将大写字母.小写字母.数字.其他字符存到列表里面并且输出列表 capital = [] lowercase = [] number = [] character = [] ...

  5. 用户输入一个字符串,将下标为偶数的字符提出来合并成一个新的字符串A,再将下标为奇数的字符提出来合并成一个新的字符串B,再将字符串A和B连接起来并输出。

    根据下述要求,编写一个程序:用户输入一个字符串,将下标为偶数的字符提出来合并成一个新的字符串A,再将下标为奇数的字符提出来合并成一个新的字符串B,再将字符串A和B连接起来并输出. rs = [] ev ...

  6. python输入一个字符串、计算其中小写字符的个数_编写程序,输入一个字符串,统计其中大小写字母数字和其他符号的个数并输出,要求统计过程在函数COUNT中进行...

    答:对比ASCII码,在程序中小写字母96 答:a = "aAsmr3idd4bgs7Dlsf9eAF" 请将a字符串的数字取出,并输出成一个新的字符串. 请统计a字符串出现的每个 ...

  7. 输入一个字符串,对字符中的各个英文字符,数字,空格进行统计。 按照统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASII码由小到大排序输出

    题目描述: 输入一个字符串,对字符中的各个英文字符,数字,空格进行统计.按照统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASII码由小到大排序输出. 输入描述:输入一串字符. 输出描述:对 ...

  8. Python编程基础 第七章 编程练习 用户从键盘上输入一个字符串,如果该字符串的内容不是有效的数值,则输出invalid;如果是有效的数值,再判断其是否是整数,如果是整数则输出yes,否则输出no。

    题目内容: 编写程序实现下面功能:用户从键盘上输入一个字符串,如果该字符串的内容不是有效的数值,则输出invalid:如果是有效的数值,再判断其是否是整数,如果是整数则输出yes,否则输出no. 输入 ...

  9. 输入一个字符串,将其逆序输出。

    输入一个字符串,将其逆序输出. 输入提示信息:"Please Enter String1:\n" 输入字符串用gets() 输出提示信息和输出格式:"Result is: ...

  10. 输入一个字符串,逆序并输出

    输入一个字符串,然后逆序这个字符串并输出 代码及运行结果如下: #include <stdio.h> #include <string.h> int main() {char ...

最新文章

  1. 分析与解决:MySQL分区表复制bug导致的主从延迟
  2. php 插入表,php 向数据库表中插入数据
  3. 【Android 组件化】路由组件 ( 路由组件结构 )
  4. java自定义日志级别_自定义log4j日志级别
  5. 鸟哥的Linux私房菜(基础篇)-第一章、Linux是什么(一.3. Linux的特色)
  6. Nginx server_name正则表达式匹配配置
  7. 2021牛客NOIP提高组第二场T2——方格计数(组合数计数)
  8. 小程序测试用例模板_微信小程序样式:高质量小程序样式模板大全
  9. rpm安装与yum安装的区别与特点
  10. Java版 数字金额大写转换
  11. 毁掉孩子自信的10个杀手
  12. python可以用c_我们可以在Python中使用C代码吗?
  13. 方便的管理苹果Mac上菜单栏图标软件推荐:Bartender
  14. 午休,要有午休床,也要有毛毯
  15. Atitit 为什么互联网金融会得到高层的支持 ----面子工程战略 政绩战略 大事业战略 高层需要在意识形态创新全球,政绩工程 得到合法性。 银行有很多家,而且别的区域也有。。不独特。。但是支付
  16. tips to understand kexec
  17. 【优化求解】基于狼群算法WPA求解最优目标matlab代码
  18. 【django】短信验证码接口设计、互亿无线短信平台、后端逻辑、前端逻辑【16】
  19. 通过添加dns加速访问app store
  20. 易语言GIF屏幕录制

热门文章

  1. 高斯法计算矩阵的行列式
  2. 关于装电脑系统的心得总结
  3. Linux Kernel Security全景图系列之开篇
  4. 统计学简介之一——统计量
  5. 华为交换机路由器密码重置笔记
  6. pygame UI 框架
  7. 二、Win10如何解决svchost一直占用网速和内存?
  8. mysql error1205 博客_Mysql Error:1205错误诊断
  9. 下一代数据架构Data Fabric到底是什么?
  10. 美团旅行前端技术体系的思考与实践