单链表反转 | 不合法的路径地址转变为合法路径

今天参加一个云服务企业的视频面试的时候,面试官一上来就要考验基本功。然后就出了两个算法题:一个链表反转;一个求合法路径地址。面试的时候答的不够好,所以现在总结一下这两个笔试题。

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。
设计一个算法,将输入的路径字符串转变为合法路径并输出。

例子:

  1. 输入: /home//user/myae
    输出: /home/user/my/ae
  2. 输入: /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

思路:

  1. 通过split()方法将字符串用 '/ ’ 进行分割
  2. 删除分割后得到的list表中的空元素 ’ ’
    [‘ad’, ‘asdf’, ‘’, ‘asdf’, ‘’, ‘’, ‘asdf’, ‘’, ‘safd’, ‘ae’, ‘’, ‘’, ‘ead’, ‘’]
  3. 通过join()方法将list表中的元素通过 '/ ’ 进行合并

注:filter() 函数是python的内置函数,用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

单链表反转 | 不合法的路径地址转变为合法路径相关推荐

  1. Java单链表反转 详细过程

    Java单链表反转 Java实现单链表翻转     [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51119499 (一) ...

  2. Java实现单链表反转操作

    单链表是一种常见的数据结构,由一个个节点通过指针方式连接而成,每个节点由两部分组成:一是数据域,用于存储节点数据.二是指针域,用于存储下一个节点的地址.在Java中定义如下: public class ...

  3. 剑指offter Java单链表反转

    应上篇文章说的做一篇单链表的反转问题.关于怎么创建单链表问题我已经写过了一篇:https://blog.csdn.net/nisemono_ct/article/details/95514797 单链 ...

  4. 数据结构1:单链表反转java代码解释

    来源于尚硅谷的老师代码,只因其中有几行代码自己课上没听明白,课后自己整理了一下 首先完整代码如下: //将单链表反转 public static void reversetList(HeroNode ...

  5. bat面试题 python 单链表反转排序

    单链表反转python实现 单链表的反转可以使用循环,也可以使用递归的方式 1.循环反转单链表

  6. Interview:算法岗位面试—10.30上午上海某信息公司(偏图算法)技术面试之单链表反转、给定整型数组和目标值 二分法查找+下午上海某金融公司(AI岗位,上市)CTO和主管技术面试之Xcepti

    ML岗位面试:10.30上午上海某信息公司(偏图算法)技术面试之单链表反转.给定整型数组和目标值 二分法查找+下午上海某金融公司(AI岗位,上市)CTO和主管技术面试之Xception.推荐算法等 I ...

  7. 单链表反转的原理和python代码实现

    链表是一种基础的数据结构,也是算法学习的重中之重.其中单链表反转是一个经常会被考察到的知识点. 单链表反转是将一个给定顺序的单链表通过算法转为逆序排列,尽管听起来很简单,但要通过算法实现也并不是非常容 ...

  8. 【编程2】单链表+单链表反转(LeetCode. 206)

    文章目录 一.链表 二.单链表 1.基本概念 (1)单链表 (2)头指针--必有元素 (3)头结点--非必需元素 (4)尾结点 2.查找操作 3.插入操作 4.删除操作 三.设计思想-- 时间 < ...

  9. python怎么反转单链表_单链表反转python实现代码示例

    单链表的反转可以使用循环,也可以使用递归的方式 1.循环反转单链表 循环的方法中,使用pre指向前一个结点,cur指向当前结点,每次把cur->next指向pre即可. 代码: class Li ...

最新文章

  1. Python 技术篇-不使用os模块遍历文件夹,pathlib库获取直接下级文件和所有下级文件
  2. django1.4 关于处理静态文件的问题
  3. java数据库操作如何往数据库里输入字符型变量
  4. 做领导应该注意的几个问题
  5. Redis的分布式锁详解
  6. java 字节输入流_JavaIO流(一)-字节输入流与字符输入流
  7. an 转换器_400V耐压场效应管替代IRF730B型号参数,使用在DC-DC电源转换器。_场效应管吧...
  8. MYSQL--事务隔离
  9. 安大计算机学院院长汤进,淮北师范大学
  10. C++编程--函数与委托(2)
  11. SHA1散列算法及其C++实现
  12. Cocos2dx入门
  13. echarts 基于个性化百度地图的迁徙图
  14. 手写计算机在线计算,计算器中的神器《MyScript手写计算器》
  15. Code3 将文件转换到byte数组中
  16. rstudio 保存_R: RStudio的中文读取、保存与显示
  17. 台式计算机显示不了无线网络,台式电脑无线网卡不显示wifi,电脑怎样连接wifi
  18. 根据拼音首字母筛选人名
  19. Stale branches 设置_手机资讯:iPhone 如何设置来电闪光灯苹果手机 LED 灯来电提醒设置教程...
  20. 测试成绩软件,软件部分测试成绩_精英 Z87H3-A3X_主板评测-中关村在线

热门文章

  1. XCopy复制文件夹命令及参数详解以及xcopy拷贝目录并排除特定文件
  2. 笔记-redis深入学习-1
  3. OpenCV4编译链接问题xxxx未定义的引用
  4. 论文检测前后需要做什么呢
  5. ORA-00600:[qctcte1]内部错误一例
  6. 倾斜文档扫描与ocr识别(opencv,坐标变换)
  7. JavaScript实现在线生成高强度随机密码工具-toolfk程序员在线工具网
  8. 怎么学php代码审计,记一次简单的php代码审计
  9. 小陷胸汤加味方与乳汁淤积
  10. MySQL中的LEFT JOIN ON (where)查询