I am a teacher!

导航

习题解析之:插入位置

【问题描述】

对一个有序的整数序列,现在要将一个整数插入进去,并保证该序列仍然有序。请输出这个数要插入的位置‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

第一行输入若干个整数,以空格间隔,本题保证用例中输入的数值顺序一定是从小到大,原始列表中无重复数据‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

第二行输入一个整数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)。

        编写的源程序如下:

        image

posted on 2025-11-26 15:59  aTeacher  阅读(16)  评论(0)    收藏  举报