前置知识:

对于不一定是完全二叉树,根据已知的中序+后序(前序)遍历顺序来建树(ps:中序一定是需要的)

参考大佬博客:已知中序和前序(或后序)遍历结果生成树_勿忘初心丶的博客-CSDN博客_已知中序序列和后序序列

解题思路:

对于树的每一层,最左端的对应着左侧影,最右端对应着右侧影。

因此也不需要建树,只需要把每一层的元素存在一个数组 arr 中,左侧影为arr[0],右侧影为 arr[-1]。

例如题目中的arr存放的数据为:[[1],[6,2],[7,3],[8,4],[5]]

那么我们就可以自行理解一下,左侧影1,6,7,8,5,右侧影1,2,3,4,5了......

题目:

我们将二叉树的“侧影”定义为从一侧能看到的所有结点从上到下形成的序列。例如下图这棵二叉树,其右视图就是 { 1, 2, 3, 4, 5 },左视图就是 { 1, 6, 7, 8, 5 }。

于是让我们首先通过一棵二叉树的中序遍历序列和后序遍历序列构建出一棵树,然后你要输出这棵树的左视图和右视图。

输入格式:

输入第一行给出一个正整数 N (≤20),为树中的结点个数。随后在两行中先后给出树的中序遍历和后序遍历序列。树中所有键值都不相同,其数值大小无关紧要,都不超过 int 的范围。

输出格式:

第一行输出右视图,第二行输出左视图,格式如样例所示。

输入样例:

8 6 8 7 4 5 1 3 2

8 5 4 7 6 3 2 1

输出样例:

R: 1 2 3 4 5

L: 1 6 7 8 5

AC代码:

def build(mid,behind,line,len_mid):global arrelement = behind.pop()arr[line].append(element)index = mid.index(element)if index<=1:for i in range(index):arr[line+1].append(mid[i])else:build(mid[:index],behind[:index],line+1,index)if len_mid - index -1 <=1:for i in range(len_mid-index-1):arr[line+1].append(mid[index+1+i])else:build(mid[index+1:],behind[index:],line+1,len_mid-index-1)n = int(input())
arr = [[] for i in range(n)]
mid = list(map(int,input().split()))
behind = list(map(int,input().split()))
build(mid,behind,0,n)
beh = 'R: '
pre = 'L: '
for i in range(n):if arr[i]:beh += str(arr[i][-1])+' 'pre += str(arr[i][0])+' 'else:break
print(beh[:-1])
print(pre[:-1])

PTA 浪漫侧影 Python相关推荐

  1. PTA题目集python判断题

    PTA题目集python判断题 在Python中0xad是合法的十六进制数字表示形式.(T) Python程序设计中的整数类型没有取值范围限制,但受限于当前计算机的内存大小.(T) 在Python 3 ...

  2. 浪漫的python代码_七夕,最浪漫的Python代码送给陷入爱河的Python男同胞

    七夕,最浪漫的Python代码送给陷入爱河的Python男同胞 image.gif ​ 三句话情书,我们听过.如何用python写一段浪漫的代码?可以是简短有韵味的情书式, 也欢迎冗长而效果拔群的万行 ...

  3. python浪漫代码-Python打造浪漫的心形,助你情人节表白成功!

    Python是一种面向他人进行的说明型编程方法,其源代码与说明器CPython遵守GPL协议,语法简洁清晰.那么,我们用少量的Python代码能做哪些有趣的东西?让小编告诉你. 一.编写浪漫的心型 1 ...

  4. python浪漫代码-python七夕浪漫表白源码

    本文实例为大家分享了python七夕浪漫表白的具体代码,供大家参考,具体内容如下 from turtle import * from time import sleep def go_to(x, y) ...

  5. itchat:给爱人,教你制造小浪漫【python】

    itchat--手把手教你制造小浪漫 作为一名有女朋友的男程序员,每天的诡异小浪漫是必不可少的. 每天的清晨,在你的小女友朦朦睁开双眼,但还在睡梦中的你却能准时送上一句的温馨话语,送上当天的天气,这岂 ...

  6. 谁说程序员不浪漫?Python导出微信聊天记录生成爱的词云图

    明天又双叒叕是一年一度的七夕恋爱节了! 又是一波绝好的机会!恩爱秀起来! 购物车清空!礼物送起来!朋友圈晒起来! 需要Python软件工具和学习资料的小伙伴可以点击下方链接自行获取 http://no ...

  7. 【趣味案例】谁说程序员不浪漫?Python导出微信聊天记录生成爱的词云图

    说到词云应该不陌生,不知道的童靴往下看 词云,就是把网络文本中出现频率较高的 "关键词"予以视觉上的突出 浏览者只要一眼扫过文本就可以领略其主旨 瞧 这是不是一个有声音.有画面的小 ...

  8. pta编程题python答案提交显示非零返回_PTA中提交Python3程序的一些套路

    0. FAQ whileTrue: raw=input()if raw == '':break print(sum(map(int, raw.split()))) 0.1 提交后提示"答案错 ...

  9. 程序员的浪漫——用Python画一颗会发光的圣诞树

    圣诞节到了,给你最爱的人送上一棵python做的圣诞树吧. 程序员的专属浪漫.我的朋友圈已经让圣诞树刷屏了. 今天来给大家分享一波如何使用 Python 来画一颗圣诞节树,包含多种 版本,从平民版到豪 ...

最新文章

  1. R语言sample.int有放回或者无放回采样随机整数实战
  2. [蓝桥] 基础练习 回文数
  3. CentOS 7实战Kubernetes部署
  4. vs中没有fstream_vs++2010 编译说找不到 fstream.h 解决方法
  5. 格子箱被评选为12家最值得注意的亚洲初创科技公司之一
  6. 空间谱专题11:子阵平滑与秩亏缺
  7. java 视频监控 分屏ui_视频监控网页ActiveX视频分屏播放控件开发
  8. 无需格式转换直接发布DWG图纸到Autodesk Infrastructure Map Server(AIMS) 2013
  9. 计算机实验报告表九,北理大学计算机实验基础实验九实验报告表-20210617084645.pdf-原创力文档...
  10. python做测试需要哪些技能_测试人员需要具备哪些基本技能
  11. Java Script 第09章 Ajax应用
  12. 将博客同步至CSDN
  13. 【单片机】按键消抖及原理(硬件和软件方法详解)
  14. win7设置背景色保护视力
  15. EMC VMAX存储的内存布局
  16. 介绍一个产品的思维导图_产品经理可以用思维导图做什么?
  17. Android编译优化系列-kapt篇
  18. 抖音短视频新媒体策划工作计划运营方案表
  19. SQL合并 合并id相同的数据
  20. 交通·未来第2期:深度交通感知: 从区域流量预测到在线OD预测

热门文章

  1. 反向传播算法(过程及公式推导)
  2. Design Complier基本知识问答
  3. 程序员编程艺术第一~十章集锦与总结
  4. 心理评测网站(SSM,MYSQL) 源码 数据库 论文
  5. 用walshall算法求解离散数学中的传递闭包问题
  6. ssh 互信无法连接问题 receive packet: type 51
  7. 解决Oracle连接超时的方案(菜鸟简述)
  8. odbc oracle 连接超时,关于ODBC驱动访问ORACLE数据库的问题!
  9. 2016年新一年的开始
  10. Sliverlight调用WebService跨域问题解决