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

游戏门户网站有哪些wordpress发布pdf

游戏门户网站有哪些,wordpress发布pdf,南通注册公司,php网站开发说明【问题描述】[中等] 【解答思路】 1. 栈 如果是一个合法的括号序列#xff0c;遍历到一个右括号(i)时#xff0c;那么它的前一个括号(i-1)必定是它的另一半(左括号)。反之不是它的另一半或者前面没有括号时#xff0c;那这个序列必定是非法括号序列。 思路#xff1a;利用…【问题描述】[中等] 【解答思路】 1. 栈 如果是一个合法的括号序列遍历到一个右括号(i)时那么它的前一个括号(i-1)必定是它的另一半(左括号)。反之不是它的另一半或者前面没有括号时那这个序列必定是非法括号序列。 思路利用一个stack辅助保存括号遇见左括号时入栈对应的右括号遇到右括号时 栈空证明前面没有匹配括号 多余的右括号栈非空弹出栈顶元素进行比较操作 最后判断栈是否为空空 括号匹配非空 多余的左括号 要么在入栈时根据不同类别入栈右括号 要么出栈的时候根部不同类别作判断 至少进行一次分类讨论 时间复杂度O(N) 空间复杂度O(N) 优秀代码 class Solution {public boolean isValid(String s) {int len s.length();if (s null || len 0) return true;if (len % 2 ! 0) {// 如果长度为奇数必然至少有一个括号没有匹配return false;}DequeCharacter stack new ArrayDeque();for (char ch : s.toCharArray()) {if (ch () {stack.addLast());} else if (ch [) {stack.addLast(]);} else if (ch {) {stack.addLast(});} else if (stack.isEmpty() || stack.removeLast() ! ch) {return false;}}return stack.isEmpty();} } public boolean isValid(String s) {if(s.isEmpty())return true;StackCharacter stacknew StackCharacter();int n s.length();for(int i 0;in;i){char a s.charAt(i);if(a()stack.push());else if(a{)stack.push(});else if(a[)stack.push(]);else{if(stack.isEmpty()||stack.pop()!a ){return false;}}}return stack.isEmpty();}借助栈对字符串进行字符遍历如果字符是左括号则入栈左括号为’(’’{’’[’如果字符是右括号则出栈并将右括号与左括号联合比较判断是否可以组成有效的括号有效括号是(){}[]如果不能组成则返回错误 class Solution {public boolean isValid(String s) {StackCharacter stack new Stack();for (int i 0; i s.length(); i) {char c s.charAt(i);if (c { || c ( || c [) {stack.push(c);} else {char p stack.empty() ? \0 : stack.pop();if ((c } p ! {) || (c ] p ! [)|| (c ) p ! ()) {return false;}}}return stack.empty();} } 2. HashMap 时间复杂度O(N) 空间复杂度O(1) public boolean isValid(String s) {if (s null) {// 如果输入字符为空没有必要继续下去直接返回falsereturn false;}int len s.length();if (len % 2 ! 0) {// 如果长度为奇数必然至少有一个括号没有匹配return false;}MapCharacter, Character pairs new HashMap();pairs.put(), ();pairs.put(], [);pairs.put(}, {);DequeCharacter stack new LinkedList();for (int i 0; i len; i) {char current s.charAt(i);if (pairs.containsKey(current)) {// 如果栈已经为空了说明右括号比左括号多不匹配直接返回false// 当第一次出现右括号的时候 栈顶元素必然为左括号不然不匹配直接返回falseif (stack.isEmpty() || stack.peek() ! pairs.get(current)) {return false;}stack.pop();} else {stack.push(current);}}// 如果最后栈不为空说明左括号多于右括号不匹配返回falsereturn stack.isEmpty(); } 【总结】 1. 优化 1.1 判断长度为奇数时 直接返回错误 1.2 使用Deque 代替 stack stack在基于数组实现上效率低 扩容效率低 初始化 DequeCharacter stack new ArrayDeque(); DequeCharacter stack new LinkedList();1.3 字符串转z字符数组遍历 速度较快 String s; char[] chs.toCharArray()2.Deque 参考文章https://www.cnblogs.com/lxyit/p/9017350.html
http://www.zqtcl.cn/news/909267/

相关文章:

  • 开一个网站建设公司好产品销售型的网站
  • 苍梧县网站建设南京网站建设 雷仁网络
  • 四川网站制作成都wordpress 移动支付
  • 山西网站开发二次开发做自媒体可以参考的外国网站
  • 合肥 网站设计大学生创新创业大赛项目计划书
  • 北京网站主题制作做婚恋网站怎么样
  • 卖设计图的网站低代码开发平台公司
  • 建设银行顺德分行网站中国建筑装饰公司排名
  • 百度网站提交入口百度国内打开google网页的方法
  • 上海高端品牌网站制作wordpress返利主题
  • 网站建设会遇到哪些难题安阳网站如何做优化
  • 哈德网站建设使用wordpress创建企业官网
  • 新品销售网站建设建设银行网站怎么登陆密码
  • 外贸营销主题怎么写seo薪资
  • 手机音乐网站源码关键路径
  • 网站制作哪些官方静态网站模板
  • 网站开发seo网站排名优化服务
  • 佛山营销网站开发帝国cms网站公告怎么做
  • 2_试列出网站开发建设的步骤在哪里进行网站域名的实名认证
  • 个人网站做博客还是做论坛网络服务推广
  • 遵义网站制作小程序辛集做网站
  • 做逆战网站的名字吗网站维护员
  • 浏览器收录网站重庆网上房地产网
  • 门户网站建设哪专业wordpress爆破密码字典
  • 响应式网站的制作app开发公司加盟
  • 建设部安全事故通报网站sem是什么分析方法
  • 北京网站制作出名 乐云践新手机建站专家
  • 做机械有什么兼职网站安徽网站优化怎么做
  • 网站建设规划semir是什么品牌
  • 网站建设开发环境自学服装设计下载