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

牛客std:pair,指针+递归+整体法的使用

登录—专业IT笔试面试备考平台_牛客网 

#include <bits/stdc++.h>
using ll = long long;constexpr int PAIR = 0;
constexpr int INT = 1;
constexpr int DOUBLE = 2;
struct Type {int base;Type *first;Type *second;
};Type *readType(const std::string &s, int &i) {Type *t = new Type;if (s[i] == 'i') {i += 3;t->base = INT;} else if (s[i] == 'd') {i += 6;t->base = DOUBLE;} else {i += 5;t->first = readType(s, i);i++;t->second = readType(s, i);i++;}return t;
}void printType(Type* t) {if (t->base == INT) {std::cout << "int";}else if (t->base == DOUBLE) {std::cout << "double";}else {std::cout << "pair<";printType(t->first);std::cout << ",";printType(t->second);std::cout << ">";}
}int main() {std::ios::sync_with_stdio(false), std::cin.tie(0), std::cout.tie(0);int n, q;std::cin >> n >> q;std::vector<Type *> type(n);std::vector<std::string> name(n);std::map<std::string, int> id;for (int i = 0; i < n; i++) {std::string t;std::cin >> t >> name[i];name[i].pop_back();int cur = 0;type[i] = readType(t, cur);id[name[i]] = i;}while (q--) {std::string s;std::cin >> s;s += ".";std::vector<std::string> a;for (int i = 0; i < s.size(); i++) {int j = s.find('.', i);a.push_back(s.substr(i, j - i));i = j;}Type* t = type[id[a[0]]];for (int i = 1; i < a.size(); i++) {if (a[i] == "first") {t = t->first;}else {t = t->second;}}printType(t);std::cout << "\n";}return 0;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 红黑树的插入 C++
  • tomcat架构设计分析,核心组件详解
  • 【C++】容器list常用接口详解
  • idea新建父工程和添加导入新模块的步骤
  • 关于STM32运行时卡住问题
  • Adobe DC 2022提示无法识别的错误 - 解决方案
  • C4 单细胞测序中,oligo文库 和 cDNA 文库 各自的功能和区别
  • 【Kubernetes知识点问答题】Service 发现
  • TPM在解决哪些类型的问题时最有效?
  • log4j 清除MDC上下文 MDC分类日志
  • Python Tkinter小程序
  • 10,sql约束(2)
  • RedisStack十部曲之二:Redis的核心概念
  • python读取excel数据详细解说
  • 基于RK3568平台移植ffmpeg3.4.5及ffmpeg验证
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Android优雅地处理按钮重复点击
  • axios 和 cookie 的那些事
  • EOS是什么
  • Java方法详解
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • node学习系列之简单文件上传
  • PAT A1092
  • PHP 7 修改了什么呢 -- 2
  • Vue.js-Day01
  • vue中实现单选
  • Xmanager 远程桌面 CentOS 7
  • 阿里云Kubernetes容器服务上体验Knative
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 记一次删除Git记录中的大文件的过程
  • 开源SQL-on-Hadoop系统一览
  • 前端代码风格自动化系列(二)之Commitlint
  • 一份游戏开发学习路线
  • 异常机制详解
  • - 转 Ext2.0 form使用实例
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • # include “ “ 和 # include < >两者的区别
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • #知识分享#笔记#学习方法
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (C语言)球球大作战
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (学习日记)2024.01.19
  • (一)kafka实战——kafka源码编译启动
  • (转)原始图像数据和PDF中的图像数据
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .Net Core中Quartz的使用方法
  • .net mvc部分视图
  • .NET 依赖注入和配置系统
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值