给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。
有效字符串需满足:
注意空字符串可被认为是有效字符串
示例 1:
输入: “()”
输出: true
示例 2:
输入: “()[]{}”
输出: true
方法一:
遇到左括号,压栈
遇到右括号,弹栈
bool isValid(string s) { if(s.length() == 0) return true;stack<char> S;for (int i = 0;i < s.length(); ++i) { switch(s[i]) { case ')':{ if(!S.empty()) { if(S.top() == '('){ S.pop();} else { return false;}}else { return false;}break;}case ']':{ if(!S.empty()) { if(S.top() == '['){ S.pop();} else { return false;}}else { return false;}break; }case '}':{ if(!S.empty()) { if(S.top() == '{'){ S.pop();} else { return false;}}else { return false;}break; }case '(':{ S.push(s[i]);break;}case '[':{ S.push(s[i]);break;}case '{':{ S.push(s[i]);break;}}}if (S.size() != 0) { return false;}return true;
}
方法二:
同样的思路,优化代码逻辑,使用map建立括号之间的映射关系
bool isValid(string s) { map<char,int> m{ { '(',1},{ '[',2},{ '{',3},{ ')',4},{ ']',5},{ '}',6}};stack<char> st;bool res=true;for(char c:s){ int flag=m[c];if(flag>=1&&flag<=3) st.push(c);else if(!st.empty()&&m[st.top()]==flag-3) st.pop();else { res=false;break;}}if(!st.empty()) res=false;return res;
}
#include
题目:表示数值的字符串 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100"、"5e2"、"-123"、"3.1416"、"0123"及"-1E-16"都表示数值,但"12e"、"1a3.14"、"1.2.3"、"+-5"及"12e+5.4"都不是。 解题: 数值错误的形式有多种多样,但是正确的...
加法伺候 //超过20位数值相加---------------------------------------- function bigNumAdd(a, b) {if (!(typeof a === "string" && typeof b === "string")) return console.log("传入参数必...
业务场景: 从中文字句中匹配出指定的中文子字符串 .这样的情况我在工作中遇到非常多, 特梳理总结如下. 难点: 处理GBK和utf8之类的字符编码, 同时正则匹配Pattern中包含汉字,要汉字正常发挥作用,必须非常谨慎.推荐最好统一为utf8编码,如果不是这种最优情况,也有酌情处理. 往往一个具有普适性的正则表达式会简化程...
简单record 一下
#include
/*判断屏幕宽高比是否为16:9*/ function isScreen16to9() {return window.screen.height / window.screen.width === 9 / 16; }...
/*关闭、刷新、跳转、离开当前网页前提示*/ onbeforeunload = function () {return false; }; ...
let json = {/**判断JSON格式*/ isJSON: function (str) {if (typeof str == "string") {try {var obj = JSON.parse(str);if (typeof obj == "object" && obj) {return true;} else {...
项目结构 index.js //必须要安装否则就别想运行了❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤ //npm i body-parser -D & cnpm i express & cnpm i node-xlsx & cnp...
一、递归 函数 为什么要有函数,提高代码的可读性,避免重复的代码,提高代码的复用性 在函数中能用return的不要print 1、递归的最大深度997 def foo(n):print(n)n+=1foo(n) foo(1) 递归的最大深度 2、修改递归的最大深度 由此我们可以看出,未报错之前能看到的最大数...
获取事件列表 getEventListeners(window)//获取window绑定的所有监听事件列表//----------------------------------------getEventListeners(document.querySelector("选择器"))//获取指定DOM的所有监听事件...
来源:https://www.cnblogs.com/hnsongbiao/p/9815808.html 偶然发现 C# 的 HttpRequest 要比 Chrome 请求同一Url 慢好多。C# HttpRequest 要500毫秒 而Chrome 只需要 39ms。 后来 整理 各种方法做了优化 HttpW...
在后台获取upload file 数量的时候发现count一直为0,经检查发现了问题 ,代码如下: 前台: var data = $("#DetailForm").serialize(); $.ajax({ url: '@Url.Action("SaveRequest", "RegistrationRequest")', ty...
* 启用ViewState的情况下,设置某一服务器控件的Value后,然后再将期Visible设置成false * 在回传时(PostBack)其Value不会丢失,ViewState会保留状态 * 如 if(!IsPostBack){ * txtName.Text="xxxx"; * txtName.Visible=f...