博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj-1146 ID codes
阅读量:6846 次
发布时间:2019-06-26

本文共 2767 字,大约阅读时间需要 9 分钟。

Description

It is 2084 and the year of Big Brother has finally arrived, albeit a century late. In order to exercise greater control over its citizens and thereby to counter a chronic breakdown in law and order, the Government decides on a radical measure--all citizens are to have a tiny microcomputer surgically implanted in their left wrists. This computer will contains all sorts of personal information as well as a transmitter which will allow people's movements to be logged and monitored by a central computer. (A desirable side effect of this process is that it will shorten the dole queue for plastic surgeons.)
An essential component of each computer will be a unique identification code, consisting of up to 50 characters drawn from the 26 lower case letters. The set of characters for any given code is chosen somewhat haphazardly. The complicated way in which the code is imprinted into the chip makes it much easier for the manufacturer to produce codes which are rearrangements of other codes than to produce new codes with a different selection of letters. Thus, once a set of letters has been chosen all possible codes derivable from it are used before changing the set.
For example, suppose it is decided that a code will contain exactly 3 occurrences of `a', 2 of `b' and 1 of `c', then three of the allowable 60 codes under these conditions are:
abaabc       abaacb       ababac
These three codes are listed from top to bottom in alphabetic order. Among all codes generated with this set of characters, these codes appear consecutively in this order.
Write a program to assist in the issuing of these identification codes. Your program will accept a sequence of no more than 50 lower case letters (which may contain repeated characters) and print the successor code if one exists or the message `No Successor' if the given code is the last in the sequence for that set of characters.

Input

Input will consist of a series of lines each containing a string representing a code. The entire file will be terminated by a line consisting of a single #.

Output

Output will consist of one line for each code read containing the successor code or the words 'No Successor'.

Sample Input

abaacbcbbaa#

Sample Output

ababacNo Successor 题目大意: 一组字符全排列,如果有下一个全排列则则输出 若无,则输出NO; 注意: 在STL中有个next_permutation(const *str,int length);函数。若有下一个全排列则返回true并生成下一个全排列, 反之返回false; 这儿
#include
#include
#include
using namespace std;int permutation(char str[],int length){ int j=0; // sort(str,str+length); while(next_permutation(str,str+length)) { for(int i=0;i
>str;if(str[0]=='#')break;int len=strlen(str);int q=permutation(str,len);if(!q)cout<<"No Successor"<

  

转载地址:http://tilul.baihongyu.com/

你可能感兴趣的文章
[转]获取js函数的名称
查看>>
笔记本的拆卸
查看>>
最长递增子序列LIS再谈
查看>>
【Text Editor】文本编辑器:Sublime Text
查看>>
C语言 判断字符串是否回文
查看>>
改变echarts中tooltip的宽度以及换行
查看>>
js中伪数组
查看>>
【ZZ】超全面的设计模式总结
查看>>
连续特征离散化和归一化
查看>>
CCF NOI1040 除法游戏
查看>>
如何使用Git上传项目代码到github
查看>>
HDU1312 ZOJ2165 Red and Black
查看>>
测试人员面试不自信怎么办?
查看>>
第一次实验报告
查看>>
正则匹配replace替换重复字符串
查看>>
[Linux学习]chattr配置文件隐藏属性及lsattr查看隐藏属性
查看>>
mybatis大数据提交和更新,数据SQL语句批量提交数据库
查看>>
每天一个小算法(Shell Sort2)
查看>>
Java数据结构与算法(7) - ch05双向链表(Double List)
查看>>
fiddler 教程
查看>>