单链表反转 | 不合法的路径地址转变为合法路径
单链表反转 | 不合法的路径地址转变为合法路径
今天参加一个云服务企业的视频面试的时候,面试官一上来就要考验基本功。然后就出了两个算法题:一个链表反转;一个求合法路径地址。面试的时候答的不够好,所以现在总结一下这两个笔试题。
1. python单链表反转
单链表结构
单链表反转问题就不细说,网上能找到很多。使用三个变量L、M、R互相赋值迭代,并建立指向关系,从而实现单链表的反转。直接上代码
class Node(object):def __init__(self, data, next=None):self.val = dataself.next = nextdef reversef(head):if head == None:return NoneL, M, R = Node, Node, headwhile R.next != None:L = MM = RR = R.nextM.next = LR.next = Mreturn Rif __name__ == '__main__':l1 = Node(3)l1.next = Node(2)l1.next.next = Node(1)l1.next.next.next = Node(9)l = reversef(l1)print (l.val, l.next.val, l.next.next.val, l.next.next.next.val)
输出:
(9, 1, 2, 3)Process finished with exit code 0
2. 合法路径问题
问题:一个合法的路径中最后一个字符不能是’/’,且子文件与父文件之间只能有一个’/’,例如:/home/user/my/ae。
设计一个算法,将输入的路径字符串转变为合法路径并输出。
例子:
- 输入: /home//user/myae
输出: /home/user/my/ae- 输入: /home///opt//sdfe/
输出: /home/opt/sdfe
代码如下:
def lujing(s):strs = s.split('/')strt = list(filter(None,strs))print('/'+'/'.join(strt))if __name__ == '__main__':s='ad/asdf//asdf///asdf//safd/ae///ead/'lujing(s)
/ad/asdf/asdf/asdf/safd/ae/eadProcess finished with exit code 0
思路:
- 通过split()方法将字符串用 '/ ’ 进行分割
- 删除分割后得到的list表中的空元素 ’ ’
[‘ad’, ‘asdf’, ‘’, ‘asdf’, ‘’, ‘’, ‘asdf’, ‘’, ‘safd’, ‘ae’, ‘’, ‘’, ‘ead’, ‘’] - 通过join()方法将list表中的元素通过 '/ ’ 进行合并
注:filter() 函数是python的内置函数,用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
单链表反转 | 不合法的路径地址转变为合法路径相关推荐
- Java单链表反转 详细过程
Java单链表反转 Java实现单链表翻转 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51119499 (一) ...
- Java实现单链表反转操作
单链表是一种常见的数据结构,由一个个节点通过指针方式连接而成,每个节点由两部分组成:一是数据域,用于存储节点数据.二是指针域,用于存储下一个节点的地址.在Java中定义如下: public class ...
- 剑指offter Java单链表反转
应上篇文章说的做一篇单链表的反转问题.关于怎么创建单链表问题我已经写过了一篇:https://blog.csdn.net/nisemono_ct/article/details/95514797 单链 ...
- 数据结构1:单链表反转java代码解释
来源于尚硅谷的老师代码,只因其中有几行代码自己课上没听明白,课后自己整理了一下 首先完整代码如下: //将单链表反转 public static void reversetList(HeroNode ...
- bat面试题 python 单链表反转排序
单链表反转python实现 单链表的反转可以使用循环,也可以使用递归的方式 1.循环反转单链表
- Interview:算法岗位面试—10.30上午上海某信息公司(偏图算法)技术面试之单链表反转、给定整型数组和目标值 二分法查找+下午上海某金融公司(AI岗位,上市)CTO和主管技术面试之Xcepti
ML岗位面试:10.30上午上海某信息公司(偏图算法)技术面试之单链表反转.给定整型数组和目标值 二分法查找+下午上海某金融公司(AI岗位,上市)CTO和主管技术面试之Xception.推荐算法等 I ...
- 单链表反转的原理和python代码实现
链表是一种基础的数据结构,也是算法学习的重中之重.其中单链表反转是一个经常会被考察到的知识点. 单链表反转是将一个给定顺序的单链表通过算法转为逆序排列,尽管听起来很简单,但要通过算法实现也并不是非常容 ...
- 【编程2】单链表+单链表反转(LeetCode. 206)
文章目录 一.链表 二.单链表 1.基本概念 (1)单链表 (2)头指针--必有元素 (3)头结点--非必需元素 (4)尾结点 2.查找操作 3.插入操作 4.删除操作 三.设计思想-- 时间 < ...
- python怎么反转单链表_单链表反转python实现代码示例
单链表的反转可以使用循环,也可以使用递归的方式 1.循环反转单链表 循环的方法中,使用pre指向前一个结点,cur指向当前结点,每次把cur->next指向pre即可. 代码: class Li ...
最新文章
- Python 技术篇-不使用os模块遍历文件夹,pathlib库获取直接下级文件和所有下级文件
- django1.4 关于处理静态文件的问题
- java数据库操作如何往数据库里输入字符型变量
- 做领导应该注意的几个问题
- Redis的分布式锁详解
- java 字节输入流_JavaIO流(一)-字节输入流与字符输入流
- an 转换器_400V耐压场效应管替代IRF730B型号参数,使用在DC-DC电源转换器。_场效应管吧...
- MYSQL--事务隔离
- 安大计算机学院院长汤进,淮北师范大学
- C++编程--函数与委托(2)
- SHA1散列算法及其C++实现
- Cocos2dx入门
- echarts 基于个性化百度地图的迁徙图
- 手写计算机在线计算,计算器中的神器《MyScript手写计算器》
- Code3 将文件转换到byte数组中
- rstudio 保存_R: RStudio的中文读取、保存与显示
- 台式计算机显示不了无线网络,台式电脑无线网卡不显示wifi,电脑怎样连接wifi
- 根据拼音首字母筛选人名
- Stale branches 设置_手机资讯:iPhone 如何设置来电闪光灯苹果手机 LED 灯来电提醒设置教程...
- 测试成绩软件,软件部分测试成绩_精英 Z87H3-A3X_主板评测-中关村在线