题目1369:字符串的排列

题目1369:字符串的排列

时间限制:1 秒

内存限制:32 兆

题目描述:

 

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

 

 

输入:

 

每个测试案例包括1行。

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

 

 

 

输出:

对应每组数据,按字典序输出所有排列。

 

 

 

 

样例输入:
abc
BCA
样例输出:
abc
acb
bac
bca
cab
cba
ABC
ACB
BAC
BCA
CAB
CBA

打印全排列的算法,思想只有一点,对于当前的一位上添加最小的数。挺经典长考的面试题,一定要注意这些个算法。

#include <iostream>
#include <stdio.h>
#include <queue>
#include <stdio.h>
#include <string.h>
#include <vector>
#include <queue>
#include <set>
#include <algorithm>
#include <map>
#include <stack>
#include <math.h>
#define Max(a,b) ((a)>(b)?(a):(b))
#define Min(a,b) ((a)<(b)?(a):(b))
using namespace std ;
typedef long long LL ;
map<char ,int>mp ;
char ch[10] ;
int used[10] ;
int now[10] ;
int id ,Len;
void dfs(int selc){if(selc==Len){for(int i=0;i<selc;i++)putchar(ch[now[i]]) ;puts("") ;}for(int i=1;i<=id;i++){if(used[i]){now[selc]=i ;used[i]-- ;dfs(selc+1) ;used[i]++ ;}}
}
int main(){char s[10] ;while(scanf("%s",s)!=EOF){mp.clear() ;Len=strlen(s) ;sort(s,s+Len) ;id=0 ;memset(used,0,sizeof(used)) ;for(int i=0;i<Len;i++){if(mp.find(s[i])==mp.end()){id++ ;mp[s[i]] = id ;ch[id] = s[i] ;used[id]++ ;}elseused[mp[s[i]]]++ ;}dfs(0) ;}return 0 ;
}

 

转载于:https://www.cnblogs.com/liyangtianmen/p/3374622.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547266.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WebStorm按Tab建快速生成代码模块

WS中&#xff0c;比如调试每次都要写的console.log(xxx);每次都要敲一遍&#xff0c;还有if模块&#xff0c;for循环模块&#xff0c;难道没有快捷键&#xff0c;可以生成代码模块吗&#xff0c;答案是“有”。 操作步骤如下&#xff08;汉化版WS&#xff09;&#xff1a; 1、…

python根据开头和结尾字符串获取中间字符串的方法

python根据开头和结尾字符串获取中间字符串的方法 本文实例讲述了python根据开头和结尾字符串获取中间字符串的方法。分享给大家供大家参考。具体分析如下&#xff1a; 这里给定一个字符串&#xff0c;指定开头和结尾的字符串&#xff0c;返回中间包夹的字符串&#xff0c;比…

iterm2一键登陆服务器(门神权限不用每次都输密码进行验证)

1、新建文件 vim ~/.ssh/config 在打开的文件中输入以下内容 Host * ControlMaster auto ControlPath ~/.ssh/master-%r%h:%p ControlPersist yes ServerAliveInterval 60 #保持持久链接 每60s 发送一个请求检测2、 新建文件 并赋予可执行权限&#xff…

STM32 cubeMX 光敏电阻AD转化实验

文章代码使用 HAL 库。 文章目录 前言一、光敏电阻介绍二、光敏电阻原理图解析三、ADC采样介绍1. 工作原理&#xff1a;2. ADC精度&#xff1a; 四、STM32 cubeMX配置ADC采样五、代码编写总结 前言 实验开发板&#xff1a;STM32F051K8。所需软件&#xff1a;keil5 &#xff0c;…

SQLServer 2012重启服务后,自增1的标识列一次增长了1000左右

sql2012我重启了下sql服务&#xff0c;然后自增列Id居然一下子跳了1000&#xff0c;怎么回事啊&#xff1f;如果第一条数据是1&#xff0c;我重启服务&#xff0c;再添加就是1001&#xff0c;如果继续添加不重启服务的话就是1002&#xff0c;如果再次重启的话就是2001.重启下就…

Sphinx+MySQL5.1x+SphinxSE+mmseg

一.不停止mysql的情况下安装SphinxSE1.确定mysql版本,下载对应源码包此处下载5.1.69的mysql源码包#wget ftp://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-5.1/mysql-5.1.69.tar.gz 解压2.下载sphinx:#wget http://sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz 解压3.拷贝m…

Python3实现从txt文件中读取指定行的方法

Python3实现从txt文件中读取指定行的方法 本文实例讲述了Python3实现从文件中读取指定行的方法。分享给大家供大家参考。具体实现方法如下&#xff1a;def getline(the_file_path, line_number):if line_number < 1:return for cur_line_number, line in enumerate(open(the…

tls握手浅析

首先上图&#xff1a; tcp三次握手完毕 tls&#xff1a; 1、client hello client random 支持的tls 支持的算法 2、server hello server random 选择的tls协议 选择的算法 证书 公钥 3、client 公&#x1f511;加密后的。 premaster secret server 私钥解密得到 premas…

第二题:坦克游戏1.0(方法:动态规划)

stO 在此给某位靠打01背包处理射程并AC的大神跪了 Orz 问题描述&#xff1a; henry公司最近推出了一款新的坦克游戏。在游戏中&#xff0c;你将操纵一辆坦克&#xff0c;在一个NM的区域中完成一项任务。在此的区域中&#xff0c; 将会有许多可攻击的目标&…

ip、子网掩码、网络地址、广播地址、主机数公式

了解ip地址组成 IP地址&#xff1a;4段十进制&#xff0c;共32位二进制&#xff0c;如&#xff1a;192.168.1.1 二进制就是&#xff1a;11000000&#xff5c;10101000&#xff5c;00000001&#xff5c;00000001 子网掩码可以看出有多少位是网络号&#xff0c;有多少位是主机号…

linux 使用systemctl 设置java进程开机启动,管理springboot开机进程

该过程默认已经安装jdk。java程序启动方式有多重&#xff0c;列出如下几种。 1、java -jar demo.jar 使用该命令程序在控制台输出启动&#xff0c;当按下CtrlC和关闭终端时&#xff0c;程序会终止。输出日志&#xff0c;在后面加上 > 文件名&#xff0c;如&#xff1a;java…

golang开发环境配置及Beego框架安装

配置环境&#xff1a;Windows7推荐IDE&#xff1a;LiteIDEGO下载地址&#xff1a;http://www.golangtc.com/downloadBeego开发文档地址&#xff1a;http://beego.me/docs/intro/ 安装步骤&#xff1a; 一、GO环境安装 二、配置系统变量 三、Beego安装 一、GO环境安装 根据上…

svn迁移到git

步骤命令如下&#xff1a; > git svn clone https://svn-url/ProjectName --no-metadata --authors-fileuser.txt --trunk/ --tagstags --branchesbranches --ignore-refsrefs/remotes/ProjectName-.* > cd ProjectName> git remote rm origin> git remote add or…

Apache基础安装(一)

一、下载安装软件包安装[rooteric6 home]# mkdir -p /home/tools[rooteric6 tools]# wget http:#mirror.esocc.com/apache/httpd/httpd-2.2.25.tar.gz[rooteric6 tools]# tar -zxvf httpd-2.2.25.tar.gz[rooteric6 tools]# cd httpd-2.2.25[rooteric6 httpd-2.2.25]# ./configu…

Supervisor管理springboot应用进程

目录 概述环境准备spring boot应用supervisor配置启动应用 概述 前面博文介绍了Supervisor进程管理,实际应用可以对springboot应用进行管理,如果springboot应用挂掉,Supervisor还可以对它进行自动重启. 点击查看进程管理利器Supervisor--入门简介 点击查看进程管理利器Supervi…

yolo 视频场景行为数据集

1 HOLLYWOOD2 https://www.di.ens.fr/~laptev/actions/hollywood2/ 动作样本&#xff08;15Gb&#xff09; | 场景样本&#xff08;25Gb&#xff09; 包含了 12 个动作类别和 10个场景共3669个样本&#xff0c;所有样本均是从69部 Hollywood 电影中抽取出来的。视频样 2 IXM…

JS只能输入数字,数字和字母等的正则表达式

1.只能输入英文  <input type"text" οnkeyup"valuevalue.replace(/[^a-zA-Z]/g,)"> 2.只能输入中文、英文、数字、符号和.符号 <input type"text" οnkeyup"valuevalue.replace(/[^a-za-z0-9u4e00-u9fa5.]/g,)"> 3.只能…

iOS 文件和数据管理 (可能会删除本地文件储存)

转自&#xff1a;http://www.apple.com.cn/developer/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/FilesandNetworking/FilesandNetworking.html 文件和数据管理 iPhone OS系统上的文件和用户的媒体数据及个人文件共享闪存上的空间。出于安全的目…

对称加密1

<?php /*** client* rsa aes md5签名*/ $serect 范英刚; $appkey 1248995523; //url $url "127.0.0.1?"; //参数 $params array(); $params[appkey] $appkey; $params[name] shiyi; $params[password] fyg666666; $params[time] time(); //http请求参…

Opencv 深度学习识别性别和检测年龄

目录 1基于CNN的性别分类建模原理 1.1 人脸识别 1.2 性别预测 1.3 年龄预测 1.4 结果 2 代码 参考 本教程中&#xff0c;我们将讨论应用于面部的深层学习的有趣应用。我们将估计年龄&#xff0c;并从单个图像中找出该人的性别。模型由GilLevi和TalHassner训练&#xff0…