已解决
1596 - Bug Hunt (UVA)
来自网友在路上 161861提问 提问时间:2023-11-04 23:43:54阅读次数: 61
最佳答案 问答题库618位专家为你答疑解惑
题目链接如下:
https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=448&page=show_problem&problem=4471
我的代码如下:
#include <iostream>
#include <string>
#include <map>
// #define debugstruct arr{int len;std::map<int, int> mp;
};
std::string s;
int bug;
std::map<std::string, arr> arrMp;bool validJudge(std::string &str, int &value){if (str.find("[") == std::string::npos){value = std::stoi(str);return true;}int left = str.find("[");int right = str.rfind("]");int v;std::string temp1, temp2;temp1 = str.substr(left + 1, right - left - 1);temp2 = str.substr(0, left);if (!validJudge(temp1, v) || arrMp[temp2].len <= v || arrMp[temp2].mp.find(v) == arrMp[temp2].mp.end()){return false;}value = arrMp[temp2].mp[v];return true;
}bool judge(std::string &str){int left, right, v1, v2;std::string temp, temp1, temp2;if (str.find("=") == std::string::npos){left = str.find("[");right = str.rfind("]");temp = str.substr(left + 1, right - left - 1);if (!validJudge(temp, v1)){return false;}arrMp[str.substr(0, left)].len = v1;return true;}int equLoc = str.find("=");left = str.find("[");right = str.rfind("]", equLoc);temp1 = str.substr(left + 1, right - left - 1);temp2 = str.substr(equLoc + 1);if (!validJudge(temp1, v1) || v1 >= arrMp[str.substr(0, left)].len || !validJudge(temp2, v2)){return false;}temp = str.substr(0, left);arrMp[temp].mp[v1] = v2;return true;
}int main(){#ifdef debugfreopen("0.txt", "r", stdin);freopen("1.txt", "w", stdout);#endifwhile (getline(std::cin, s) && s != "."){bug = 0;int i = 0;arrMp.clear();do {if (bug) continue;++i;if (!judge(s)){bug = i;}} while (getline(std::cin, s) && s != ".");printf("%d\n", bug);}#ifdef debugfclose(stdin);fclose(stdout);#endifreturn 0;
}
查看全文
99%的人还看了
相似问题
- 【二叉树】常见题目解析(2)
- 力扣题目学习笔记(OC + Swift)
- 【PTA题目】L1-4 稳赢 分数 15
- 初刷leetcode题目(5)——数据结构与算法
- 竞赛 题目:基于机器视觉opencv的手势检测 手势识别 算法 - 深度学习 卷积神经网络 opencv python
- 初刷leetcode题目(1)——数据结构与算法
- 【华为OD机试AB高分必刷题目】拆分(Python-贪心算法实现)
- 通过一道题目带你深入了解WAF特性、PHP超级打印函数、ASCII码chr()对应表等原理[RoarCTF 2019]Easy Calc 1
- 数据结构:Map和Set(2):相关OJ题目
- C++模板元模板实战书籍讲解第一章题目讲解
猜你感兴趣
版权申明
本文"1596 - Bug Hunt (UVA)":http://eshow365.cn/6-32246-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!