试题编号: 201809-3
试题名称: 元素选择器
时间限制: 1.0s
内存限制: 256.0MB




问题链接:CCF201809-3 元素选择器
问题简述:(略)
问题分析:文本处理问题,需要有好的数据表示,好的处理流程。
程序说明:程序主要使用string及其相关的类方法来实现,需要熟悉有关的类及其方法。
参考链接:(略)
题记:(略)

100分的C++语言程序如下:

/* CCF201809-3 元素选择器 */#include <bits/stdc++.h>using namespace std;const int N = 100 + 1;
struct Element {string label;string id;int lvl;
} e[N];int main()
{std::ios::sync_with_stdio(false);std::cin.tie(NULL);cout.tie(NULL);string s;int n, m;cin >> n >> m;cin.get();for (int i = 1; i <= n; i++) {getline(cin, s);int k = 0;while (s[k] == '.') k++;e[i].lvl = k / 2;string label;while (s[k] != ' ' && s[k])label += s[k++];transform(label.begin(), label.end(), label.begin(), ::tolower);e[i].label = label;if (k < (int)s.length()) {string t;while (s[++k]) t += s[k];e[i].id = t;}}for (int i = 1; i <= m; i++) {vector<string> v;string t;vector<int> ans;getline(cin, s);stringstream ss(s);while (ss >> t) v.push_back(t);for (int j = 0; j < (int)v.size(); j++)if (v[j][0] != '#')transform(v[j].begin(), v[j].end(), v[j].begin(), ::tolower);for (int j = n; j >= 1; j--)if (e[j].id == v[v.size() - 1] || e[j].label == v[v.size() - 1]) {int l = v.size() - 2, lvl = e[j].lvl;for (int k = j; k >= 0 && l >= 0; k--) {if (e[k].lvl < lvl) {lvl = e[k].lvl;if (e[k].id == v[l] || e[k].label == v[l]) l--;}}if (l == -1) ans.push_back(j);}cout << ans.size();for (int j = ans.size() - 1; j >= 0; j--)cout << ' ' << ans[j];cout << endl;}return 0;
}

CCF201809-3 元素选择器(100分)【文本处理】相关推荐

  1. Python攻城师的成长————css语法、伪元素选择器(部分)

    今日学习目标 熟悉并掌握css中各种修改属性的方法. 文章目录 今日学习目标 学习内容 一.伪元素选择器 css操作文本内容 选择器优先级 二.css修改属性 css修改文字属性 css修改字体属性 ...

  2. CCF201912-3 化学方程式(100分)【文本处理】

    试题编号: 201912-3 试题名称: 化学方程式 时间限制: 1.0s 内存限制: 512.0MB 问题链接:CCF201912-3 化学方程式 问题简述:(略) 问题分析:文本处理问题,按字符串 ...

  3. CCF201512-1 数位之和(100分)【进制+文本】

    试题编号: 201512-1 试题名称: 数位之和 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定一个十进制整数n,输出n的各位数字之和. 输入格式 输入一个整数n. 输 ...

  4. CCF202006-3 Markdown渲染器(100分)【文本处理】

    试题编号: 202006-3 试题名称: Markdown渲染器 时间限制: 1.0s 内存限制: 512.0MB 问题链接:CCF202006-3 Markdown渲染器 问题简述:(略) 问题分析 ...

  5. CCF201812-3 CIDR合并(100分)【位运算+文本】

    试题编号: 201812-3 试题名称: CIDR合并 时间限制: 1.0s 内存限制: 512.0MB 样例输入 2 1 2 样例输出 1.0.0.0/8 2.0.0.0/8 样例输入 2 10/9 ...

  6. CCF201703-3 Markdown(100分)【文本处理】

    试题编号: 201703-3 试题名称: Markdown 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 Markdown 是一种很流行的轻量级标记语言(lightweigh ...

  7. CCF201709-3 JSON查询(100分)【文本处理】

    问题描述 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,可以用来描述半结构化的数 据.JSON 格式中的基本单元是值 (value),出于简化的目的本 ...

  8. CCF201712-3 Crontab(100分)【模拟+文本处理】

    样例输入 3 201711170032 201711222352 0 7 * * 1,3-5 get_up 30 23 * * Sat,Sun go_to_bed 15 12,18 * * * hav ...

  9. CCF201803-3 URL映射(100分)【文本处理+暴力】

    试题编号: 201803-3 试题名称: URL映射 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 URL 映射是诸如 Django.Ruby on Rails 等网页框架 ...

最新文章

  1. 你想要的宏基因组-微生物组知识全在这(190101)
  2. centos 安装java_在CentOS8上编译安装开源EDA工具——Surelog
  3. 《Python Cookbook 3rd》笔记(3.9):大型数组运算
  4. ac自动机 匹配最长前缀_别再暴力匹配字符串了,高效的KMP,才是真的香
  5. allow_pickle什么意思_如何修复草图算法中“当allow_pickle=False时无法加载对象数组”...
  6. C语言排序方法-----二元选择排序法
  7. Jmeter进阶之性能测试响应结果保存到本地
  8. 专利挖掘和撰写(京东技术资质申请和创造专利挖掘)
  9. office表格怎么冻结前两行_怎样冻结表格前两行(excel2003中怎么冻结行列标题)
  10. 驾驶证机动车查询验证WebSerivce调用编程接口说明及示例代码
  11. 《一课经济学》六、政府价格管制
  12. 基于STM32F103RCT6的二维码显示实验
  13. Summery of the first homework
  14. 《假如给我三天光明》读后感及其摘录(1)
  15. gb2818的学习第一课
  16. PDA模拟中的问题1
  17. 【脚本项目源码】Python制作艺术签名生成器,打造专属你的个人艺术签名
  18. 无人船成渡过大西洋将来发展又会如何?
  19. 拟凸函数和凸函数的区别
  20. 3GPP TS 29244-g30 中英文对照 | 5.4.14 Deferred PDR activation and deactivation

热门文章

  1. ×××,专线,BACKUP
  2. python计算卡方分布_如何用Python计算上证指数的涨跌幅分布情况?
  3. 2018-08-06
  4. [网址链接]格林童话故事的原始素材
  5. SQL那些事儿(十)--oracle主键、唯一键与索引
  6. ArcGIS水文分析实战教程(7)细说流域提取
  7. ssm注解配置连接mysql_基于注解和配置类的SSM(Spring+SpringMVC+Mybatis)项目详细配置...
  8. python函数参数的引用传递_Python初学者笔记(八):函数参数的值传递和引用传递...
  9. c++ 可变参数_深入剖析ProE可变扫描特征原理、操作和应用方法
  10. java 加载spring_spring的加载机制?