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;
}
相关推荐
luckycoding1 小时前
1487. 保证文件名唯一
数据结构·算法·leetcode
big_rabbit05021 小时前
[算法][力扣110]平衡二叉树
数据结构·算法·leetcode
二年级程序员1 小时前
排序(五)“计数排序” 与 “各排序实际用时测量”
c语言·算法·排序算法
bkspiderx2 小时前
MQTT 开源库:Eclipse Paho C 详解,特性、交叉编译与实战示例
c语言·mqtt·开源·eclipse paho c
djarmy2 小时前
量子计算必然走向边缘+终端+云端的分布式架构,而oh是目前唯一面向全场景的分布式
c语言
巧克力味的桃子2 小时前
最长连续因子问题 - C语言学习笔记
c语言·笔记·学习
Genevieve_xiao3 小时前
【写给新人】在 vscode 中配置适用于算法竞赛背景的 c/c++
c语言·vscode·算法
TracyCoder1233 小时前
LeetCode Hot100(70/100)—— 322. 零钱兑换
算法·leetcode·职场和发展
x_xbx3 小时前
LeetCode:88. 合并两个有序数组
算法·leetcode·职场和发展
ฅ^•ﻌ•^ฅ13 小时前
LeetCode hot 100(复习c++) 1-15
c++·算法·leetcode