UVA 146 ID Codes

來源:互聯網
上載者:User

UVA_146

這個題目實際上就是要求產生下一個字典序排列。

如果要是恰好比現在的字串大一點點的話,肯定是最後連續的幾位變動得越少越好,那麼不妨從後往前搜,直到後面一個字元要大於前面一個字元,這時從前面那個字元一直到字串末尾便是最小的變動區間。之後在這個區間裡找到恰好比首字元大一點的字元和首字元進行交換,然後將這個區間除首字元之外按字典序排列即可。

#include<string.h>
#include<string.h>
#include<stdlib.h>
char b[60];
int cmp(const void *_p,const void *_q)
{
char *p=(char *)_p;
char *q=(char *)_q;
return *p-*q;
}
int main()
{
int i,j,k,n;
char temp;
while(1)
{
scanf("%s",b);
if(b[0]=='#')
break;
n=strlen(b);
for(k=n-1;k>0;k--)
if(b[k]>b[k-1])
break;
if(k==0)
{
printf("No Successor\n");
continue;
}
for(i=n-1;i>=k;i--)
if(b[i]>b[k-1])
{
temp=b[i];
b[i]=b[k-1];
b[k-1]=temp;
break;
}
qsort(b+k,n-k,sizeof(b[0]),cmp);
printf("%s\n",b);
}
return 0;
}

  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.