2025年10月9日 星期四

[402] Remove K Digits

Corner case 很多ㄟ
寫一寫就覺得怒了Orz
先這樣好了QQ

char* removeKdigits(char* num, int k) {
int len = strlen (num);
char* ret = calloc(len+1, sizeof(char));
int top = -1;
for (int i=0; i<len ; i++)
{
while (top >=0 && num[i]< ret[top] && k>0)
{
top--;
k--;
}
ret[++top]=num[i];
}
while (k>0 && top >=0)
{
k--;
top--;
}
ret[top+1]='\0';
if (top < 0)
return "0";
top = 0;
while (ret[top]=='0')
top++;
if (top>=strlen(ret))
return "0";
return (ret+top);
}

沒有留言:

張貼留言