习题解析之:插入位置
【问题描述】
对一个有序的整数序列,现在要将一个整数插入进去,并保证该序列仍然有序。请输出这个数要插入的位置
第一行输入若干个整数,以空格间隔,本题保证用例中输入的数值顺序一定是从小到大,原始列表中无重复数据
第二行输入一个整数n
将整数序列放入列表ls
如果ls中已经存在n,则不插入该数,输出 Fail以及ls列表
若ls中可以插入n,输出插入位置(从0开始计数),以及插入后的ls列表
示例
输入:
1 2 3 5
4
输出:
3
[1, 2, 3, 4, 5]
【编程思路】
如果列表 ls 中已经存在 n,则直接输出 Fail 以及 ls 列表。
如果列表 ls 中不存在 n,则用循环 for i in range(len(ls)): 依次遍历列表中的每个元素,若某个元素 ls[i] 的值大于 n,则 n 的插入位置为 i ,将 n 插入到 ls[i] 的前面,插入语句为 ls = ls[:i] + [n] + ls[i:],插入后退出循环。若循环正常结束(break语句没有执行过),则表示列表中的全部元素的值均小于 n ,n 应该插入到列表的最后,插入位置为 len(ls) ,插入语句为 ls.append(n)。

浙公网安备 33010602011771号