python简单算法题_python - 简单算法题 - 列表偏移
列表偏移
题目要求
lst = [1,2,3,4,5],列表向右偏移两位后,变成lst = [4,5,1,2,3]
思路分析
第一种方式:用切片将 [1,2,3] 和 [4,5] 取出来,之后合并在一起
lst = [1,2,3,4,5]
result = lst[3:]+lst[:3]
print(result)
或者
lst = [1,2,3,4,5]
result = lst[len(lst)-2:]+lst[:len(lst)-2]
print(result)
这种始终利用了本来的切片方式,实际我们还是得通过算法方式锻炼底层思维逻辑。
第二种方法:算法,每次只偏移一位,取末尾数据,赋予第一位数据的逻辑。
首先,需考虑偏移的位置大于列表本身情况,例如向右偏移6位,实际上是右偏移一位,则取余即可,6%5=1。
其次,只考虑每次偏移一位的实现方式:先将末尾的位数记录下来,赋予一个临时变量tmp
其他位置的数据全部右移一位
将第一位数据重新赋为tmp
lst = [1,2,3,4,5]
count = int(input('请输入偏移位数:'))
count = count % len(lst)
for i in range(count):
tmp = lst[-1]
for j in range(len(lst)-1,0,-1):
lst[j] = lst[j-1]
lst[0] = tmp
print(lst)
优化思考
python当中的列表,其实就是线性表,因为它满足以下条件:元素之间有顺序、有限
第一个元素无前驱、最后一个元素无后续
中间元素各有其一前驱其一后续
元素之间是一对一关系
那么它的偏移操作就是符合线性表的(插入+删除)的操作:偏移位置大于线性表长度,则取余
获取最后一个位置为插入数据元素
从最后一个位置开始向前遍历到第1个位置,分别都将它们向后移动一个位置
将最后一个位置覆盖到第一个位置
线性表的插入操作就是:插入位置不合理,抛异常
如果线性表长度大于等于数组长度,则抛出异常或动态增加容量
从最后一个元素开始向前遍历到第i个位置,分别将它们都向后移动一个位置
将要插入元素填入位置i处
表长加1
例如:火车票插队加塞,后面全部退一步,但是后面的人不知道为什么要退后一步,只知道前面位置退,跟着退
线性表的缺点:从这个偏移案例看出,线性表的插入、删除等操作需要移动大量元素
欢迎交流相互学习。
python简单算法题_python - 简单算法题 - 列表偏移相关推荐
- python sort 部分元素_Python 简单排序算法-选择、冒泡、插入排序实现
写文章主要是记录自己每天学习的东西,本篇文章主要介绍数据结构中常用的简单的排序算法,虽然这些算法用Python实现起来不是十分的高效,不如c.java之类的运行速度快,应用Python实现主要是为了: ...
- python算法题_python基本算法题(一)
1.3位水仙花数计算 "3位水仙花数"是指一个三位整数,其各位数字的3次方和等于该数本身. 例如: ABC是一个"3位水仙花数",则:A的3次方+B的3次方+C ...
- python录音文件降噪_Python | 简单的扩音,音频去噪,静音剪切
原标题:Python | 简单的扩音,音频去噪,静音剪切 之前一段时间一直在搞数字语音识别,在训练算法上耗费了很多时间,但结果不尽人意.后来才发现自己一直忽视了音频预处理的一步,于是转而囫囵吞枣般学习 ...
- python算法口诀_Python 经典算法100及解析(小结)
1:找出字符串s="aaabbbccceeefff111144444"中,字符出现次数最多的字符 (1)考虑去重,首先将字符串进行过滤去重,这样在根据这些字符进行循环查询时,将会减 ...
- python 数据挖掘 简书_python 数据挖掘算法简要
前言 数据挖掘是通过对大量数据的清理及处理以发现信息,并将这原理应用于分类,推荐系统,预测等方面的过程.本文基于<面向程序员数据挖掘指南>的理解,扩展学习后的总结.不足之处还请赐教,觉得有 ...
- python统计文本字数_Python 简单应用--文章字数统计
Python是做数据处理很好的工具,这里小时牛刀,用Python完成文章的字数统计. 系统:Ubuntu16.04 Python版本:3.4 文本:<西游记>txt片段 结果:存放于res ...
- python爬取图片实例_Python简单爬取图片实例
都知道Python的语法很简单易上手,也很适合拿来作爬虫等等,这里就简单讲解一下爬虫入门--简单地爬取下载网站图片.html 效果 就像这样自动爬取下载图片到本地:python 代码: 其实很简单,咱 ...
- python数据分析算法调用_python数据分析算法(决策树2)CART算法
CART(Classification And Regression Tree),分类回归树,,决策树可以分为ID3算法,C4.5算法,和CART算法.ID3算法,C4.5算法可以生成二叉树或者多叉树 ...
- python中文文本分析_python简单的分析文本
import collections import re #读取tips.txt文件内容,type(mytips)=str with open("tips.txt","r ...
最新文章
- 锐捷ap怎么设置_WiFi又不稳定?怎么办,看这里
- 一篇小黄文牵出国内最大黑产
- iOS之常用的正则表达式
- 棋牌游戏服务器架构: 总体设计
- “智云大咖秀”:大咖摄影师谈惊艳亮相的“大咖级”设备
- Xamarin Mono for VS开发窗体标题(Title)乱码解决方案
- asp.net cookie操作-添加cookie,添加键值,移除cookie,移除键值
- python圆形_Python中的圆形范围
- 数据科学入门与实战:玩转pandas之三
- 识别手指pos 20个
- Spring Cloud 设置Feign的日志记录级别
- 洛谷——P1075 [NOIP2012 普及组] 质因数分解
- java进程的守护进程脚本
- Git分支基本命令+coding webhook+lnmp
- python编写环境手机_给android手机上配置python运行环境
- android游戏策划方案,游戏策划案模板.doc
- 京东运营体系组织架构曝光,自建物流秘密在这里
- 【HUSTOJ】1053: 字符图形9-数字正三角
- MariaDB数据存储引擎的选择
- hdu5956, The Elder (树型dp, 斜率优化)