/*很郁闷為什麼这么水的字母串+O(n2)排序為什麼是暴力搜索这章节的,好吧,不管三七二十一先过了水题*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char str[200];
int len;
void insert( int j, int i )
{
int t, temp;
temp = str[i];
for( t = i-1; t >= j; t-- )
str[t+1] = str[t];
str[j] = temp;
str[len] = '\0';
}
int main()
{
int flag, i, j, temp, t;
while( gets( str ) )
{
flag = 0;
len = strlen(str);
if( str[0] == '#' )
break;
if( len == 1 )
{
printf( "No Successor\n" );
continue;
}
for( i = len-1; i >= 0; i-- )
{
for( j = i-1; j >= 0; j-- )
if( str[i] > str[j] )
{
insert( j, i );
flag = 1;
break;
}
if( flag )
break;
}
for( i = j+1; i < len; i++ )
for( t = i+1; t < len; t++ )
if( str[i] > str[t] )
{
temp = str[i];
str[i] = str[t];
str[t] = temp;
}
if( flag )
printf( "%s\n", str);
else
printf( "No Successor\n" );
}
return 0;
}
UVA 146
最新推荐文章于 2017-07-29 15:11:29 发布