漫画算法笔记 删除整数的K个数字

编程入门 行业动态 更新时间:2024-10-24 06:33:12

漫画算法笔记  删除<a href=https://www.elefans.com/category/jswz/34/1771264.html style=整数的K个数字"/>

漫画算法笔记 删除整数的K个数字

漫画算法笔记

删除整数的K个数字

#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
//删除整数的K个数字,获得删除后的最小值
string removeKDigits(string num, int k)
{string newNum = num;for (int index_k = 0; index_k < k; ++index_k ){bool bCut = false;//从左向右遍历,找到比自己右侧数字大的数字并删除for(int i = 0; i < (int)(newNum.length() - 1); ++i){if ( newNum.at(i) > newNum.at(i + 1) ){newNum = newNum.substr(0, i) + newNum.substr(i + 1);bCut = true;break;}}//如果没有找到要删除的数字,则删除最后一个数字if (!bCut){newNum = newNum.substr(0, newNum.size() - 1);}//清楚整数左侧的数字for ( int i = 0; i < (int)(newNum.length() - 1); ++i){if (newNum.at(0) != '0'){break;}newNum = newNum.substr(1, newNum.length());}}//如果整数的所有数字都被删除了,直接返回0if (newNum.empty()){return "0";}return newNum;
}int main()
{cout << removeKDigits("1593212", 3) << endl;cout << removeKDigits("30200", 1) << endl;cout << removeKDigits("10", 2) << endl;cout << removeKDigits("541270936", 3) << endl;return 0;
}

更多推荐

漫画算法笔记 删除整数的K个数字

本文发布于:2024-02-24 15:14:27,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1695730.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:整数   算法   漫画   数字   笔记

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!