删去K个字符,使字符串所表示的数最大
解法: 移除K个数,则从首字符向字符串尾部遍历K次,如果某个字符小于下一个字符的ASCII(数字字符串的大小和ASCII码一致),则将该字符移除(后续的字符依次前移),然后K值减1,退出此次循环,重新循环直到K为0;若字符串已经从前到后没有字符小于后一位,并且K不为0时,则从字符串末尾减去K个字符。
#include<string.h>
int main()
{
char a[100000];
int i,j,len,c,f=1;
scanf("%s",a);
scanf("%d",&c);
len = strlen(a)-1;
while (1)
{
if(f==1)
{
f=0;
}
else break;
if(c==0) break;
else
{
for(i=0;i<len;i++)
{
if(a[i]<a[i+1])
{
for(j=i;j<len+5;j++)
{
f=1;
a[j]=a[j+1];
}
len--;
c--;
break;
}
}
}
}
if(c!=0) for(i=0;i<strlen(a)-c;i++) printf("%c",a[i]);
else puts(a);
return 0;