View Code of Problem 609

#include<stdio.h>
#include<string.h> 
//利用贪心算法 
int main() {   
    char a[1000];
    int k;
    while(scanf("%s%d", a, &k)!=EOF) {
        int len = strlen(a);
        while(k--) {
            for(int i=0;i<len;i++){
                if(a[i]>a[i+1]) {    //贪心算法,局部数列为降序,则删除当前数字,后面的数字往前移动一位 
                    for(int j=i;j<len;j++)
                        a[j]=a[j+1];
                    break;
                }
            }
            len--;
        }
        while(a[0]=='0')                              //删除前导0
        {
            for(int i=0;i<len;i++)             
                a[i]=a[i+1];
        }
        
        if(a[0]==0)  printf("0\n");  
        else printf("%s\n",a);     
    }
    return 0;
}
 

Double click to view unformatted code.


Back to problem 609