zoukankan      html  css  js  c++  java
  • HDU

     1 #include<stdio.h>
     2 #include<string.h>
     3 int main()
     4 {
     5     int i,j,k,l,n,h,t,min,head,tail,num[1000];
     6     char a[1000];
     7     scanf("%d",&t);
     8     for(j=0;j<t;j++)
     9     {
    10         scanf("%s",a);
    11         n=strlen(a);
    12         min=99999;
    13         for(i=n-1;i>=0;i--)
    14         {
    15             if((a[i]!='0')&&(a[i]<min))
    16             {
    17                 min=a[i];
    18                 h=i;
    19             }
    20         }//从右到左找到第一个非零最小数;
    21         if(h==0)
    22         {
    23             printf("%s
    ",a);
    24             continue;
    25         }//如果没有h之前的部分可以直接输出;
    26         head=500;
    27         tail=500;
    28 //分别记录答案序列的头尾位置;
    29         num[500]=a[0]-'0';
    30         for(i=1;i<h;i++)
    31         {
    32             if(a[i]-'0'<=num[head])
    33             {
    34                 head--;
    35                 num[head]=a[i]-'0';
    36             }
    37             else
    38             {
    39                 tail++;
    40                 num[tail]=a[i]-'0';
    41             }
    42         }//先处理前h的部分
    43         head--;
    44         num[head]=a[h]-'0';//把第h个数字放在最前面
    45         for(i=h+1;i<n;i++)
    46         {
    47             tail++;
    48             num[tail]=a[i]-'0';
    49         }//把h之后的部分接在后面;
    50         for(i=head;i<=tail;i++)
    51         {
    52             printf("%d",num[i]);
    53         }
    54         printf("
    ");
    55     }
    56 }
    View Code
  • 相关阅读:
    Weekly blog for week 1908
    Weekly blog for week 1907
    Weekly blog for week 1905&1906
    Weekly blog for week 1904
    Write Week 3 Blog beforehand
    Add Week 2 Blog
    First week of a new year
    Andriod-Log
    bat
    学习方法
  • 原文地址:https://www.cnblogs.com/NWUACM/p/6431069.html
Copyright © 2011-2022 走看看