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

中山专业网站制作农业网站素材

中山专业网站制作,农业网站素材,备案系统网站,seo网站推广优化公司dp括号匹配 网易面试题这是较容易的编码任务之一#xff0c;但是您仍然可以在一些初步的技术筛选中达到目标。 问题看起来像这样#xff1a; 给定仅包含字符( #xff0c; ) #xff0c; { #xff0c; } #xff0c; [和]的字符串#xff0c;请确定输入字符串是否有效… dp括号匹配 网易面试题 这是较容易的编码任务之一但是您仍然可以在一些初步的技术筛选中达到目标。 问题看起来像这样 给定仅包含字符( ) { } [和]的字符串请确定输入字符串是否有效。 括号必须以正确的顺序闭合 ()和()[]{}均有效而(]和([)]则无效。 描述取自Leetcodec 。 您如何解决 我们一直在使用这项任务进行技术筛选。 有趣的是有多少人真的不知道该如何处理请注意这是Leetcode上的“轻松”类别。 有些人尝试使用正则表达式。 有些人试图想出一种蛮力解决方案遍历字符串并计算开括号和闭括号。 但是如果您考虑一下您将理解两者都不足以。 例如如何在最简单的[]情况下计数帮助 您应该想到的解决方案是stack 但是如果您从未接受过解决编码问题的培训则可能不会。 为什么要堆叠 好吧因为只有当您看到闭合的支架时才可以检查一对支架或支架的完整性。 但这意味着打开的那个应该放在某个地方等待并在某些数据结构之上进行检查。 允许LIFO访问的结构是一个堆栈 。 碰巧我们在Java中有一个现成的Stack类 。 那么简单的解决方案如何 基本思想是您开始遍历字符串。 如果符号是打开符号之一则将其推入堆栈。 如果即将关闭您可以查看堆栈看看是否匹配。 如果是则将其从堆栈中弹出。 如果堆栈最后为空则返回true。 import java.util.*;public class Groups{private static final ListCharacter OPEN Arrays.asList((, {, [);private static final ListCharacter CLOSE Arrays.asList(), }, ]);public static boolean groupCheck(String s){if (s null || s.length() 0) {return true;}StackCharacter stack new Stack();for (int i 0; i s.length(); i) {char current s.charAt(i);if (isOpen(current)) {stack.push(current);} else {if (stack.isEmpty()) {return false;}char prev stack.peek();if (isMatch(prev, current)) {stack.pop();}}}return stack.isEmpty();}private static boolean isOpen(char c) {return OPEN.contains(c);}private static boolean isClose(char c) {return CLOSE.contains(c);}private static boolean isMatch(char prev, char next) {return isOpen(prev) (OPEN.indexOf(prev) CLOSE.indexOf(next));}} 还有其他解决方法吗 如果您没有想到堆栈怎么办 与往常一样有多种方法可以解决问题。 让我们看这个例子 []{} 。 让我们尝试替换正确匹配的对 “[[]{}”。replace“ []”“”“{}”。replace“”“”“ {}”。replace“ {} ”“”“” 因此我们可以循环遍历字符串用空字符串替换“ {}”“”和“ []”。 当结果为空时表示所有对都匹配。 如果没有变空怎么办 我们如何摆脱周期 好吧我们需要检查一轮替换后字符串的长度是否已更改。 如果还没有那么我们就破产了。 public class Groups{public static boolean groupCheck(String s) {int len;do {len s.length();s s.replace((), );s s.replace({}, );s s.replace([], );} while (len ! s.length());return s.length() 0;} } 看起来更好。 简单易读但实际上是否更好 我会说不不是。 为什么 好吧因为String类是不可变的 因此每次执行s.replace时我们都会在堆上创建一个新的字符串对象。 那么如何最好地做到这一点呢 我们可以使用StringBuilder类重写代码吗 好吧不是直接的因为它没有replaceAll方法。 您必须使用现有的replace方法自己编写它。 Apache Commons库中有一个StrBuilder类它确实具有此方法但它不是标准的Java类您必须添加一个依赖项。 因此即使这个简单的任务也可以给您一些思考。 但是对于面试任何解决方案都可以。 如果堆栈不是您脑海中最先想到的那么您可以不做任何事情。 翻译自: https://www.javacodegeeks.com/2017/02/interview-questions-verify-braces.htmldp括号匹配 网易面试题
http://www.huolong8.cn/news/34014/

相关文章:

  • 广州微网站建设信息那个网站做毕业设计
  • 直播网站建设目的友情链接交换标准
  • 在虚拟机中如何做二级域名网站wordpress5换回编辑器
  • 广东省住房和城乡建设厅网站进不去梧州论坛红豆社区
  • 建设手机网站上海网站平台建设
  • 绥化市建设局网站网络开发是什么专业
  • 网站搭建行业松原做招聘的网站有哪些
  • 西部数码网站管理助手 mysql基层建设是哪个网站的
  • 定期更新网站微信公众号菜单跳转的网页怎么制作
  • 西安seo网站管理个人简历免费导出
  • 南城仿做网站智慧团建网站怎么转团关系
  • 成都房产网官方网站建设手机网站的方案
  • 深圳制作网站公司哪里好书画展示网站源码
  • 怎样做网站设计要交税吗个安装wordpress
  • 化学网站定制房地产怎么白手起家
  • 找工程去哪个网站网站制作公司兴田德润简介
  • 2网站建设张家界网站建设app
  • 苏州市工业园区规划建设局网站网站建设比较合理的流程
  • 商业网站页面公司广告墙设计图片
  • wap网站html5顺德网站建设报价
  • 美妆网站建设环境分析万网封停慧聪网域名事件
  • 开发网站公司地址做网站用的浏览器有哪些
  • 二级网站都在一台服务器怎么做域名苏州 手机网站
  • 做网站需要每年都缴费吗涿州市住房和城乡建设局网站
  • 网站透明效果旅游景点网站策划书
  • 用asp.net做的网站框架推广策略和推广方案一样吗
  • 北京做网站建设公司哪家好做网站嘉兴
  • 建筑设计网站排行榜0元可以注册公司吗
  • 建站设计网站网站管家
  • excel网站链接怎么做网上书店网站建设设计的收获