第四章实践

Posted wwency

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四章实践相关的知识,希望对你有一定的参考价值。

1.实践题目

 删数问题 

2.问题描述

给定n位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新 的正整数。对于给定的n位正整数a和正整数 k,设计一个算法找出剩下数字组成的新数最 小的删数方案。

输入格式:

第 1 行是1 个正整数 a。第 2 行是正整数k。

输出格式:

输出最小数。

输入样例:

在这里给出一组输入。例如:

178543 
4 

输出样例:

在这里给出相应的输出。例如:

13

3.算法描述

对输入的字符数组从第一个字符进行遍历,当小的数在前的时候,继续向后遍历;当大的数在前的时候,将该数删除,也就是把后面的数依次向前挪一个把该数覆盖,直到被覆盖数的个数等于要删除数的个数。如果被覆盖数的个数小于要删除数的个数的时候就已经遍历完成,此时字符数组是升序,保留前面的数即可。在新生成的字符数组中,如果所有的数为0,输出0;如果首位的几个数也为0,就从不是0的开始输出。

4.算法时间及空间复杂度分析(要有分析过程)

空间复杂度为O(1),就是一个字符数组的长度。

时间复杂度为O(n2),因为while循环内还有一个移动字符的for循环。

5.心得体会(对本次实践收获及疑惑进行总结)

删数问题最开始用的string里面的eraser一直出错,因为字符串的长度会从被擦掉字符那里断掉,很困惑。后来换成了字符数组的方式,运行正确但是由于数组定义的大小太小,导致pintia上面提交后显示运行错误。感觉最后做出来很不容易,还有就是最优合并问题有点难。

以上是关于第四章实践的主要内容,如果未能解决你的问题,请参考以下文章

《Python从入门到实践》第四章动手试一试

《Python从入门到实践》--第四章用切片操作列表 课后练习

《python从入门到实践》--第四章基本操作列表 重点及课后练习

深入理解DOM节点类型第四篇——文档片段节点DocumentFragment

逆向及Bof基础实践

软工实践第四次小组作业