开发者社区> 锦城学长> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

poj-1146 ID codes

简介: 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...
+关注继续查看

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

abaacb
cbbaa
#

Sample Output

ababac
No Successor
题目大意:
一组字符全排列,如果有下一个全排列则则输出 若无,则输出NO;
注意:
在STL中有个next_permutation(const *str,int length);函数。若有下一个全排列则返回true并生成下一个全排列,
反之返回false;
<a href="www.baidu.com">这儿</a>
#include<iostream>
#include<string.h>
#include<algorithm>
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<length;i++)
        cout<<str[i];

        cout<<endl;
        j++;
        break;

        }
        return j;
}
int main ()
{
while(1)
{

char str[100];
cin>>str;
if(str[0]=='#')break;
int len=strlen(str);
int q=permutation(str,len);
if(!q)cout<<"No Successor"<<endl;
}

return 0;
}

  

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Brute Force & STL --- UVA 146 ID Codes
 ID Codes    Problem's Link:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=3&problem=82&mosmsg=Submission+received+with+ID+14418598  Mean:   求出可重排列的下一个排列。
572 0
hdu 1599 find the mincost route
点击打开链接hdu 1599 思路:最短路+floyd+最小环 分析: 1 题目要求的是能否有从某一个点出发至少经过两个不同点然后回到源点,有的话求最小路径长度。
656 0
poj 1850 Code
点击打开链接poj 1850 思路:组合数学+排列组合 分析: 1 题目要求的是给定一个字符串判断是否满足题目的要求,如果是输出第几个,如果不是则输出-1. 2 那么首先我们应该先判断这个字符串是否是符合题目的字符串,如果不符和直接输出-1. 3 在字符串符合的情况下,那么我们就可以知道长度小于len的字符串都是符合条件的。
581 0
HDU-2680,Choose the best route(Dijkstra)
HDU-2680,Choose the best route(Dijkstra)
0 0
hdu 2680 Choose the best route
点击打开链接hdu 2680 思路:最短路+SPFA 分析: 1 题目要求的是从某一个站点能否到达目标站点 2 题目的其实站点有多个,如果都对每一个站点进行SPFA的话那么肯定TLE的。
501 0
+关注
锦城学长
暂无
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载