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

禹城有做网站网站向哪里备案

禹城有做网站,网站向哪里备案,温州设计集团网站建设,无极网站无极城市在线LeetCode-726 原子的数量 递归 题目链接#xff1a;LeetCode-726 原子的数量 给你一个字符串化学式 formula #xff0c;返回 每种原子的数量 。 原子总是以一个大写字母开始#xff0c;接着跟随 0 个或任意个小写字母#xff0c;表示原子的名字。 如果数量大于 1#xf…LeetCode-726 原子的数量 递归 题目链接LeetCode-726 原子的数量 给你一个字符串化学式 formula 返回 每种原子的数量 。 原子总是以一个大写字母开始接着跟随 0 个或任意个小写字母表示原子的名字。 如果数量大于 1原子后会跟着数字表示原子的数量。如果数量等于 1 则不会跟数字。 例如“H2O” 和 “H2O2” 是可行的但 “H1O2” 这个表达是不可行的。 两个化学式连在一起可以构成新的化学式。 例如 “H2O2He3Mg4” 也是化学式。 由括号括起的化学式并佐以数字可选择性添加也是化学式。 例如 “(H2O2)” 和 “(H2O2)3” 是化学式。 返回所有原子的数量格式为第一个按字典序原子的名字跟着它的数量如果数量大于 1然后是第二个原子的名字按字典序跟着它的数量如果数量大于 1以此类推。 示例 1 输入formula “H2O” 输出“H2O” 解释原子的数量是 {‘H’: 2, ‘O’: 1}。 示例 2 输入formula “Mg(OH)2” 输出“H2MgO2” 解释原子的数量是 {‘H’: 2, ‘Mg’: 1, ‘O’: 2}。 示例 3 输入formula “K4(ON(SO3)2)2” 输出“K4N2O14S4” 解释原子的数量是 {‘K’: 4, ‘N’: 2, ‘O’: 14, ‘S’: 4}。 示例 4 输入formula “Be32” 输出“Be32” 提示 1 formula.length 1000formula 由英文字母、数字、’(’ 和 ‘)’ 组成formula 总是有效的化学式输出的所有值总是在 32-bit 整数范围内 本题并没有特别复杂、特别难理解的思路但是对于各种情况需要妥善地加以处理再配合递归的思想和 map 即可解出。 首先我们来分析以下我们在遍历给定的字符串的时候会遇到以下几种情况 常规情况 这里的情况指的是常规的字符和数字即没有括号的情况。在这种情况下我们知道大写字母及其后跟着的小写字母表示的是化学元素的名称而元素名称后面又有两种情况一是后面直接跟其他大写字母这种情况下即元素个数缺省默认为1另一种情况是后面跟着数字则数字表示该元素的原子个数。 括号 括号及嵌套括号的出现是这个题要仔细处理的一个情况。对于这种多层括号嵌套最里面的括号中就是我们上面的常规情况而不同级的括号嵌套这种情况非常适合我们用递归的方式进行处理。 在具体实现中我们将遍历字符串中遇到的字符分为以下三种情况 遇到 ( 当遇到左括号时我们要开始准备递归在这种情况下对当前括号里的子串进行递归调用并用一个子 map 来接收当前括号内子串的原子名称及个数。当我们遇到有括号会退出递归函数注意当退出递归函数时我们需要记录其后面的一个数字并将它乘到我们的子串得到的子 map 所统计的原子个数上。 遇到 ) 遇到右括号时我们肯定在之前遇到过一个左括号并进入递归函数这时我们只需返回并让遍历索引往后走一步即可。 其他情况 其他情况即上述常规情况我们遇到的是代表原子名称的字母和代表原子个数的数字。我们会分别实现两个函数来获取原子名称和个数。 其他需要注意的点 题目中要求的字典序map 会自动帮我们排序。整个过程中维护的遍历索引 i 需要再函数间传递时使用引用传递。 完整代码 class Solution { private:int get_num(string s, int i) {string num ;while (isdigit(s[i])) {num s[i];}return num.empty() ? 1 : stoi(num);}string get_name(string s, int i) {string name ;while (isalpha(s[i]) (name.empty() || islower(s[i]))) {name s[i];}return name;}mapstring, int get_map(string s, int i) {mapstring, int ans;while (i ! s.length()) {if (s[i] () {mapstring, int temp get_map(s, i);int cnt get_num(s, i);for (auto kv : temp) {ans[kv.first] kv.second * cnt;}}else if (s[i] )) {i;return ans;}else {string name get_name(s, i);int cnt get_num(s, i);ans[name] cnt;}}return ans;}public:string countOfAtoms(string formula) {int i 0;string ans;for (auto kv : get_map(formula, i)) {ans kv.first;if (kv.second 1) {ans to_string(kv.second);}}return ans;} };Ref https://leetcode-cn.com/problems/number-of-atoms/ https://riba2534.blog.csdn.net/article/details/88591566
http://www.zqtcl.cn/news/914346/

相关文章:

  • 开发手机网站步骤手机网站前端开发布局技巧
  • 文山文山市网站建设网站建设管理教程视频
  • 深圳建筑业协会官网seo短视频新地址在哪里
  • 学院宣传网站制作大型网站团队人数
  • 新品发布会ppt参考友山建站优化
  • 做网站云服务器装系统厦门网站建设哪家强
  • 网站建设顶呱呱东莞建设信息网官网
  • 化妆品网站下载企业宣传片报价明细
  • php建设网站怎么用网站建设忽悠
  • 网站软件app免费注册账号qq
  • 清河网站建设公司西安开发网站的公司
  • 怎么用自己的服务器做网站软件接口设计文档
  • 昆明做网站建设找谁郑州网站制作的公司哪家好
  • 天津seo网站推广如何做医美机构网站观察分析
  • 东莞网站到首页排名网站建设与设计主要是干什么的
  • 自己做网站要花钱吗个人网站可以做资讯吗
  • 做vr效果图的网站做小程序的公司有哪些比较好
  • 物流建设网站总结制作壁纸的软件
  • 自己电脑做主机怎么做网站培训公司排名
  • 网站seo优化排名qq空间wordpress搬家
  • 做二手元器件那个网站查价格元气森林网络营销策略分析
  • 优质网站建设是哪家17网站一起做网店不发货
  • 建设企业网银如何对账seo优化推广工程师
  • 广州制作外贸网站小说网站制作公司
  • 东莞南城网站建设价格注册深圳公司有什么好处
  • 做网站图片大小建个人网站要多少钱
  • 北京免费建网站seo网站关键词
  • 南宁网站制作公司dede网站建站教程
  • 辽宁省建设工程招标协会网站自建网站主题及策划
  • 石材做网站google建网站