C语言 | Leetcode C语言题解之第402题移掉K位数字

题目:

题解:

cpp 复制代码
char* removeKdigits(char* num, int k) {
    int n = strlen(num), top = 0;
    char* stk = malloc(sizeof(char) * (n + 1));
    for (int i = 0; i < n; i++) {
        while (top > 0 && stk[top] > num[i] && k) {
            top--, k--;
        }
        stk[++top] = num[i];
    }
    top -= k;

    char* ans = malloc(sizeof(char) * (n + 1));
    int ansSize = 0;
    bool isLeadingZero = true;
    for (int i = 1; i <= top; i++) {
        if (isLeadingZero && stk[i] == '0') {
            continue;
        }
        isLeadingZero = false;
        ans[ansSize++] = stk[i];
    }
    if (ansSize == 0) {
        ans[0] = '0', ans[1] = 0;
    } else {
        ans[ansSize] = 0;
    }
    return ans;
}
相关推荐
mifengxing33 分钟前
力扣HOT100——(1)两数之和
java·数据结构·算法·leetcode·hot100
Z.风止33 分钟前
Large Model-learning(2)
开发语言·笔记·python·leetcode
爱编码的小八嘎1 小时前
C语言完美演绎6-10
c语言
AlenTech2 小时前
139. 单词拆分 - 力扣(LeetCode)
算法·leetcode·职场和发展
3壹2 小时前
STM32按键检测与上拉电阻详解
c语言·stm32·嵌入式硬件
AI+程序员在路上2 小时前
新手进入嵌入式行业方法与方向选择
c语言·开发语言·单片机·嵌入式硬件
always_TT2 小时前
栈内存 vs 堆内存:区别与使用场景
c语言
水饺编程2 小时前
第4章,[标签 Win32] :SysMets3 程序讲解01
c语言·c++·windows·visual studio
Lenyiin2 小时前
深度剖析 C 语言标准IO库:stdio 实现原理与实战指南
c语言·开发语言
计算机安禾3 小时前
【数据结构与算法】第15篇:队列(二):链式队列的实现与应用
c语言·开发语言·数据结构·c++·学习·算法·visual studio