当前位置: 首页 > news >正文

固原市网站建设_网站建设公司_漏洞修复_seo优化

建设企业网站哪个好,算命网站搭建,微博网站开发,企业网络组网题目 试题编号#xff1a; 201809-3 试题名称#xff1a; 元素选择器 时间限制#xff1a; 1.0s 内存限制#xff1a; 256.0MB 问题描述#xff1a; 题目分析#xff08;个人理解#xff09; 还是先理解题意#xff0c;关于html的部分#xff0c;可以按照样例画出…题目 试题编号 201809-3 试题名称 元素选择器 时间限制 1.0s 内存限制 256.0MB 问题描述 题目分析个人理解 还是先理解题意关于html的部分可以按照样例画出树状图html数据结构类似树画图更清楚的明白子类父类的关系)。两个点就是第一层级四个点就是第二层级依次类推。如图所示框起来的就是后代选择器查找要做的就是返回他们在html文档的行号。对于html的内容无非是查找时的选择器的种类不同对于查找有三种情况:1)单个标签选择器2)单个id选择器3)对于此题理解的有难度的地方在于出现后代选择器的情况迭代选择器出现的情况有两种第一种多个标签选择器第二种多个ID选择器。做此类模拟题要根据输出选择输入内容的容器类型本人️的教训此题最后返回的是行数又因为要判断标签还是id还是后代选择器还要判断父子关系因此在存入html文档的内容时采用字典存储。存储每一行html文档的层级标签和id选择器内容。对于查询语句的存储还是选择列表利用split方法切分字符串再用append方法追加写入即可。下面进行判断到底是查找的哪种情况很容易如果查询语句的长度是1则是ID或标签选择器否则就是后代选择器。之后利用函数分别实现三种选择器的方法进入的参数是查询的语句返回值是满足条件的行号。后面的代码注释写的非常清楚了我就不多赘述。上代码 def Level(String):#此函数将实现存储html文档每一行的内容并且以字典的形式返回缩进层级标签和IDfor i in range(len(String)):if String[i] ! .:#统计表示缩进的符号breaklevel i // 2#计算当前缩进label #存储标签ID #存储IDif len(String[i:].split()) 1:#只有一个选择器label String[i:]#写入else:#后代迭选择器label, ID String[i:].split()#写入return {level: level,label: label, id: ID}row, test map(int, input().split())#输入html总行号和测试数量 html [None] # 存放html文档全部内容位序表示行号由于从一开始列表位序从0开始所以0号位用None占位html[]内的元素表示{level: level,label: label, id: ID} #print(html) for i in range(row):#输入html.append(Level(input()))#直接进入函数判断注意返回的是字典 search []#存放查询的操作 for i in range(test):search.append(list(input().split()))#存放到对应列表def LabelOrId(String):#判断是哪种选择器ID还是标签temp [0]#设置选择器个数初始值for i in range(1, len(html)):#遍历整个html文件的结构if String.lower() html[i][label].lower() or String html[i][id]:#判断查询的标签是否在输入的html文档中如果存在temp[0] 1#temp[0]表示有几个选择器IDorLabeltemp[1]表示行号也就是temp[]存储的是每一行选择器的个数temp.append(i)return tempdef ParentRow(row):#利用缩进关系确定html文档的父子关系if row 0:#html文档没内容return 0else:#有内容level html[row][level]#返回html文档最高缩进层数for i in range(row, 0, -1): # html第0位为Noneif html[i][level] level - 1:#只相差一层则存在父节点注意存在爷爷父亲儿子的情况三级或更多return i#返回父节点行号return 0 # 不存在父节点def Descendant(List):#后迭代选择器参数是search[]row []#存放合法的满足条件的行数、行号输出的内容temp_answer LabelOrId(List[-1])#前面都是相同的ID选择器或者元素选择器返回的是最后一个选择器的行号for i in range(temp_answer[0]):#遍历html文档flag []#利用此列表判断合法性son_row temp_answer[i 1]#返回子节点行号family_row [son_row]#把最小层级子节点行号存入family_row[]while True:parent_row ParentRow(son_row)#返回存在子节点的行号if parent_row 0:#没有子节点breakelse:family_row.append(parent_row)#把存在子节点的行号存入family_row[]son_row parent_row#更新子节点行号family_row.reverse()#翻转此时family_row[]的元素是从小到大的子节点行号j, k 0, 0#j记录查询个数,k记录子节点个数while k len(family_row):if List[j].lower() html[family_row[k]][label].lower() or List[j] html[family_row[k]][id]:#判断输入合法性flag.append(True)k 1j 1if j len(List): breakelse:k 1if flag [True] * len(List):#全部合法row.append(temp_answer[i 1])#返回子节点的行号l len(row)row.insert(0, l)#等价于row[0]记录row的长度return rowresult [] for i in range(test):if len(search[i]) 1:#长度为一不存在迭代answer LabelOrId(search[i][0]) # 标签和ID选择器result.append(answer)else:#迭代answer Descendant(search[i]) # 后代选择器result.append(answer)for i in range(len(result)):#按照格式输出print( .join(map(str, result[i])))# 测试样例11 5 html ..head ....title ..body ....h1 ....p #subtitle ....div #main ......h2 ......p #one ......div ........p #two p #subtitle h3 div p div div p总结 Joker!
http://www.ihoyoo.com/news/126908.html

相关文章:

  • 手机端网站动效类怎么做手机老是下载一些做任务的网站
  • 怎样选择网站的关键词系统没有安装wordpress
  • asp网站中停止后面代码的运行wordpress5.2添加外链
  • 建设网站的目的和功能做网站360推广多少钱
  • 苏州手工活外发加工网导航网站怎么做seo
  • 什么是展示型网站外贸推广课程
  • 网站建设颜色搭配中小企业管理软件下载
  • 网站项目规划与设计方案php网站开发实例编程
  • 网站制作什么做苏州软件定制开发
  • 宁夏建设职业技术学院网站拖拽式制作网站
  • 修文县抖音seo推广收费全网优化推广
  • 手机版网站打开速度慢上海做网站价格
  • 平面设计网站制作怎么创一个网站赚钱
  • 自己做网站需不需要钱织梦cms一键更新网站无法使用
  • 社保局网站建设意义济南seo整站外包
  • 网站降权该怎么做wordpress模板调用自定义插件
  • 想自学做网站跨境电商网站开发公司
  • 有哪些网站做的比较好看的图片网站建设的系统分析
  • 衡阳网站建设开发价格兰州网站怎么建设
  • 网址导航网站简单制作奉贤专业做网站
  • 定制网站建设价格wordpress新版编辑器
  • 运城网站制作公司北京万户网络
  • 懂做网站的人就是好珠海建设工程交易中心
  • 承德很好的网络建站家政公司管理系统
  • 北京 网站开发 排行帮别人做网站自己为什么会被抓
  • 无锡哪家公司做网站wordpress 获取主题名称
  • 昆明网站建设哪家比较好网上电商平台开发
  • html网站开发例子自适应wordpress博客
  • thinkphp 网站下载吉林网站建设哪家好
  • 网站建立好如何做seo江门网站建设定制