欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Brute Force STL --- UVA 146 ID Codes

发布时间:2025/5/22 编程问答 74 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。