当前位置: 首页 > 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.sadfv.cn/news/34014/

相关文章:

  • 建设一个类似于京东的网站把html变成wordpress主题
  • 南宁优化网站网络服务2017常用的网站
  • 做网站那个平台好推软件
  • 贵阳网站建设哪家便宜网站内部链接导向
  • 厦门市湖里区建设局网站新手如何注册网站域名
  • 工具类网站做排名个人网页英文
  • 做网站每个月可以赚多少网站后台数据库丢失
  • 硬件开发网站十大经典营销案例
  • 在网站上做教育直播平台多少钱网页设计与制作题目
  • 网站开发过程的分工电子商务有哪些职业
  • 网站如何注销美术教师网站建设心得体会
  • 四川住房和城乡建设厅网站首页优秀flash网站设计
  • 网站重构南宁seo诊断
  • 建设银行+贷款+查询+网站98建筑人才网
  • 宁波外贸网站设计公司wordpress 站长统计插件
  • 网站制作平台能赚钱吗代理一款网页游戏需要多少钱
  • 网站开发的主要技术经典网站建设
  • 网站主页面设计多少钱品牌网站建设新闻
  • 去年做哪些网站能致富全球交流软件app
  • wordpress 收费 视频优化网站seo公司
  • 在京东上怎样做网站客户管理系统源代码
  • 南京 网站建站湖南省郴州市天气
  • 网页制作官方网站公司最近想做个网站怎么办
  • c 网站做微信收款功能西宁网站制作费用是多少钱
  • 网站开辟两学一做专栏建站哪家好论坛
  • 惠州手机模板建站小的外贸公司值得去吗
  • 建设田达摩托车官方网站织梦网站有会员系统怎么做
  • wordpress 首页位置佛山网站推广优化公司
  • 网站空间在那里买房产集团公司网站建设方案
  • 创意网站开发wordpress登陆过程