删除部分数字问题
来源:互联网 发布:淘宝美食 知乎 编辑:程序博客网 时间:2024/06/01 12:53
//搜狐2017笔试题
/*
笔试题:给定一个十进制的正整数number,选择从里面去掉一部分数字,希望保留下来的数字组成的正整数最大。
*/
/*
解题思路:例如数字51643,需要删除3位数而使剩下的数字组合最大,此时需要从头开始两个数字比较大小,
如果当前数字比其下一位小,则删除当前数字,此时变为5643,继续从头开始遍历,5比6小,则删除5,变为643
继续从头遍历,当走到4的位置发现4比3大,而且4已经是倒数第二位数字,则删除最后一位数字,就得到了64
关键点:1.每次j都需要从头遍历
2.需要考虑最后两个数字比较时,如果倒数第二位比最后一位小,需要删除最后一个数字。
*/
#include<iostream>#include<string.h>using namespace std;int main(){ string number; int count; int j; cout<<"请输入一个十进制的正整数:"; while(cin>>number) { cout<<"请输入要去掉的数字个数:"; cin>>count; for(int i = 0;i<count;i++) { int length = number.length(); for(j = 0;j<length-1;j++) { if(number[j]<number[j+1]) { number.erase(number.begin()+j); break; } } if(j == length-1) //例如51643,当j到数字倒数第二位时,4比3大,此时要删除3, number.erase(number.end()-1); j--; //每次都需要j--使j从数字的开始遍历。 } cout<<number; } return 0;}
阅读全文
0 0
- 删除部分数字问题
- n位数字删除数问题
- 有关删除数字的dp问题
- 删除数字
- 删除数字
- 删除数字
- 删除数字
- 删除数字
- 删除数字
- MyEclipse中删除Struts应用的问题:删掉struts部分
- JAVA中List删除元素部分陷阱问题
- 最简单的贪心算法--删除数字问题
- java代码实现贪心算法删除数字问题
- n个数字形成一个圆圈,隔m个数字删除一个的问题
- 07-自定义QueryParer解决部分查询的性能问题/解决日期和数字范围问题
- sql部分重复删除
- 删除List重复部分
- Hashset删除部分数据
- 快速排序
- 椭球曲面拟合算法实现,matlab/C++
- APACHE支持.htaccess以及 No input file specified解决方案
- layout_gravity 和 gravity
- centos7下firewall常见命令
- 删除部分数字问题
- eclipse快捷键大全
- hibernate 注解开发
- Linux Centos7安装Elasticsearch5.x版本
- 最短路径—Dijkstra算法和Floyd算法
- Cordova 开发之安卓插件开发(一)
- Ionic2学习笔记(0):HelloWorld
- Fidder获取手机端app报文的补充说明
- 分巧克力