uva 146 ID Codes (下一个排列)
来源:互联网 发布:中科院对学生调查数据 编辑:程序博客网 时间:2024/06/05 06:20
题意没读懂,感觉但凡是暴力题,题意都很恶心
自己心里有些浮躁于是一部分原因吧
就是给定一个字符串,如果这个字符串按照字典序有下一个排列,就输出那个字符串,否则输出No Successor
如果不知道 stl 里面的next_permutation(a, a+n)函数,这个题可能有些难,但是看过白书了。。。
说下next_permutation(a, a+n)是对a数组按照升序得到下一个排列,如果不可能存在下一个排列,函数返回值为0
否则为1,此时的a数组就是排列后的a数组
代码如下:
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define MAXN 10010#define ll long longusing namespace std;char str[MAXN];int a[MAXN];int main(void) { while(cin>>str && strcmp(str, "#")) { int len = strlen(str); if(next_permutation(str, str+len) == 0) cout << "No Successor"; else { for(int i=0; i<len; ++i) cout << str[i]; } cout << endl; }}
接着试着不用stl写一下试试看
下面是不用stl写的,感觉自己还有很多不足,且行且努力吧。。。
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define MAXN 10010#define ll long longusing namespace std;char str[MAXN];int main(void) { while(cin>>str && strcmp(str,"#")) { int len = strlen(str);// print_permutation(len, a, 0); int flag = 0; for(int i=len-1; i>0; --i) { if(str[i] > str[i-1]) { flag = i; break; } } for(int i=len-1; i>=flag; --i) { if(str[i] > str[flag-1]) { str[i] ^= str[flag-1]; str[flag-1] ^= str[i]; str[i] ^= str[flag-1]; break; } } sort(str+flag, str+len); if(flag == 0) cout << "No Successor"; else cout << str; cout << endl; } return 0;}
0 0
- uva 146 ID Codes (下一个排列)
- UVA 146 ID Codes(下一个排列)
- uva 146 ID Codes(求下一个排列)水水水
- UVA 146 ID Codes(排列)
- 暴力--下一个排列--ID Codes
- uva 146 ID Codes(下一个排列,水了一大笔呀)
- UVA 146 - ID Codes 枚举排列
- UVa 146 - ID Codes STL 排列
- UVA - 146 ID Codes (枚举排列)
- UVA - 146 - ID Codes (枚举排列)
- UVa 146 ID Codes
- uva 146 - ID Codes
- UVa 146 ID Codes
- uva 146 - ID Codes
- UVa 146 - ID Codes
- uva-146 - ID Codes
- UVa 146 - ID Codes
- Uva 146 - ID Codes
- js刷新页面方法大全
- HDOJ_1711_KMP 求匹配位置
- unity3d 学习笔记(二)
- 单身女青年的购房之路
- Uva 1121Subsequence
- uva 146 ID Codes (下一个排列)
- OCP 1Z0 051 3
- 挑战面试编程:计算整数二进制位中1的个数
- 第十一周项目三点类派生直线类(有疑问)
- OpenGL ES From the Ground Up, Part 1 Addendum: Alphabet Soup
- JavaScript中this关键字使用方法详解
- XML 简介 (from W3C School)
- OpenGL ES From the Ground Up, Part 1: Basic Concepts
- mysql “group by ”与"order by"的研究--分类中最新的内容