当前位置:   article > 正文

今日头条---后台开发笔试题_后台笔试题

后台笔试题

第一题:

简化Unix风格的路径:

实例:

输入:/home/

输出:/home

实例2:

输入:/a/./b/../../c/

输出:/c

分析:(参考自:https://blog.csdn.net/qq_28618765/article/details/78013580?utm_source=copy

“..”表示返回路径的上级目录(如果当前是根目录则不处理),“.”表示当前目录。

使用栈来记录路径名。在处理字符串路径的过程中,遵循以下条件:

(1)重复连续的“/”,只需处理一个即可,即跳过重复连续出现的多个“/”;

(2)如果路径名不为“.”或“..”,将记录的字符串入栈;

(3)如果路径名是“..”且栈不为空,则需要出栈,否则无需处理。

在遍历完字符串之后,逐个取出栈中元素,用“/”分隔并拼接起来,注意:取出的元素是从后往前进行拼接的。

  1. def test(path):
  2. pathlist=path.split('/')
  3. catch=[]
  4. result=''
  5. for data in pathlist:
  6. if data not in ["",".",".."]:
  7. catch.append(data)
  8. if '..'==data and catch:
  9. catch.pop(-1)
  10. if catch==[]:
  11. return "/"
  12. for data in catch:
  13. result=result+"/"+data+""
  14. return result
  15. if __name__=='__main__':
  16. path=raw_input('')
  17. result=test(path)
  18. print result

运行结果:

运行AC 

第二题:

得出字符串前缀,来唯一标识该字符串;

  1. if __name__=='__main__':
  2. n=int(raw_input())
  3. strlist=[]
  4. result=[]
  5. t=[]
  6. flag = 0
  7. for i in range(n):
  8. catch=raw_input()
  9. strlist.append(catch)
  10. for i in range(0,len(strlist)):
  11. result=[]
  12. for j in range(0,len(strlist)):
  13. for y in range(0,len(strlist[i])+1):
  14. if i!=j:
  15. item=strlist[i][:y]
  16. if strlist[j].find(item)!=0 :
  17. result.append(strlist[i][:y])
  18. result.sort()
  19. break
  20. print result.pop()
  21. # #
  22. # 5
  23. # bytedance
  24. # toutiaohao
  25. # toutiaoapp
  26. # iesaweme
  27. # iestiktok
  28. # b
  29. # toutiaoh
  30. # toutiaoa
  31. # iesa
  32. # iest
  33. # #

运行结果为:

结果:

但:输入一个字符串是会出错

运行20%;运行时间超时。。。。。。。。

 

 

修改

  1. if __name__=='__main__':
  2. n=int(raw_input())
  3. strlist=[]
  4. result=[]
  5. t=[]
  6. flag = 0
  7. for i in range(n):
  8. catch=raw_input()
  9. strlist.append(catch)
  10. for i in range(0,len(strlist)):
  11. result=[]
  12. result.append(strlist[i][0])
  13. for j in range(0,len(strlist)):
  14. for y in range(0,len(strlist[i])+1):
  15. if i!=j:
  16. item=strlist[i][:y]
  17. if strlist[j].find(item)!=0 :
  18. result.append(strlist[i][:y])
  19. break
  20. result.sort()
  21. print result.pop()

运行结果为:

欢迎大佬指点!!!!!!!!!!!!!

实验知识点:

list分割:

知识点:

(1)list中的pop()

参考链接:http://www.runoob.com/python/att-list-pop.html

pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。

语法

pop()方法语法:

list.pop([index=-1])

参数

  • obj -- 可选参数,要移除列表元素的索引值,不能超过列表总长度,默认为 index=-1,删除最后一个列表值。

返回值

该方法返回从列表中移除的元素对象。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/570371
推荐阅读
相关标签
  

闽ICP备14008679号