python练习程序python练习软件初中python练习题
下载地址 https://share.weiyun.com/OvviwGnZ
资料目录 Python练习集100题 100道Python面试题 Python100经典练习题 Python经典题目100道题 Python题库(已收录100道真题) Python100例视频讲解课程 菜鸟教程Python教程100例 130道python练习题,涵盖基础内容的方方面面 Python考试题复习知识点试卷试题 PYTHON测试题和答案 python第一阶段考试题 Python经典面试题和答案解析 python期末考试复习试卷 python习题集大全(附答案解析) 老男孩Python全栈7期练习题(面试真题模拟) 尚观python第一阶段考试(面试真题模拟) 《Python程序设计基础与应用》习题答案 《Python快速编程入门》——课后题答案 Python编程基础张健 , 张良均课后习题及答案 Python程序设计基础及实践(慕课版)郭炜习题答案 Python程序设计基础习题答案与分析 python基础试题(含答案)
举例 删除有序序列中的重复项 题目要求 已知一个有序序列,请原地删除序列中重复出现的元素,返回删除重复元素后的序列长度。 只能使用 O(1) 额外空间来完成这个任务,例如 [0,0,1,1,1,2,2,3,3,4,4,4,5],最终返回的长度是6, 序列前6个元素是 0 1 2 3 4 5 思路分析 已知条件如下: • 序列有序 • 只能使用O(1)额外空间,必须原地删除 • 需要返回删除重复元素后的长度,如果长度为N,那么序列前N个元素没有重复元素 设置一个哨兵index,初始值赋为0。用一个for循环从索引1开始遍历lst,i做迭代变量, 如果lst[i]!=lst[index],就说明lst[i]是一个比lst[index]大的元素,它应该被放置在index+1的位置上 将lst[i] 放置在index+1位置上以后,要向右移动哨兵的位置,执行index += 1,这样,即便lst[i]这个值在后面重复出现了,可此时lst[index]=lst[i],所以重复出现的值会被忽略掉,直到遇到一个与lst[index]不相等的元素,再次移动哨兵 示例代码 def remove_duplicate(lst): index = 0 for i in range(1, len(lst)): if lst[index] != lst[i]: lst[index + 1] = lst[i] index += 1 return index + 1
if __name__ == '__main__': lst = [0, 0, 1, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5] index = remove_duplicate(lst) print index print lst[:index]
|