大家好,又见面了,我是你们的朋友全栈君。
题目链接:http://poj.org/problem?id=1146
此题求所给字符串按字典序的下一个由原串字母排列的串,题目不难,开始看错了,wrong一次
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char** argv) { char a[55],temp; int k,i,j,flag,t; while(scanf("%s",a)&&a[0]!='#') { flag=-1; k=strlen(a); t=k-1; for(i=k-2;i>=0;--i) { if(a[i]>=a[t]) { t=i; } else { if(a[k-1]>a[i]) { flag=k-1; } else { for(j=t;j<k;j++) { if(a[j]<=a[i]) { flag=j-1; break; } } } break; } } if(flag==-1) { printf("No Successor\n"); } else { temp=a[i]; a[i]=a[flag]; a[flag]=temp; for(j=0;j<=i;j++) { printf("%c",a[j]); } for(j=k-1;j>=i+1;--j) { printf("%c",a[j]); } printf("\n"); } } return (EXIT_SUCCESS); }
代码:
转载于:https://www.cnblogs.com/fengyuehan/archive/2012/04/10/poj1146.html
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/143080.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...