Brute Force STL --- UVA 146 ID Codes
生活随笔
收集整理的這篇文章主要介紹了
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:?
?求出可重排列的下一個排列。
analyse:
?直接用STL來實現就可。自己手動寫了一個,并不復雜。
Time complexity:?O(n^2)
?
Source code:?
?1.STL
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int main() { char s[55]; while(scanf("%s",s)!=EOF) { if(s[0]=='#') break; if(next_permutation(s,s+strlen(s))) printf("%s\n",s); else printf("No Successor\n"); memset(s,0,sizeof(s)); } return 0; }2.手寫
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int main() {//freopen("a.txt","r",stdin);char s[55];while(scanf("%s",s),s[0]!='#'){int i,j,len(strlen(s));for(i=len-2; i>=0; i--)if(s[i]<s[i+1])break;if(i<0) puts("No Successor");else{for(j=i+1; i<len; j++)if(s[i]>=s[j]){char c=s[i];s[i]=s[j-1];s[j-1]=c;break;}sort(s+i+1,s+len);puts(s);}}return 0; }
轉載于:https://www.cnblogs.com/crazyacking/p/4050322.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Brute Force STL --- UVA 146 ID Codes的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS 创建对象(常见的几种方法)
- 下一篇: ubuntu 修改environment