标签:map 20 HashMap 迭代 有效 括号 键值 put new
利用哈希表的键值对属性和堆的先进后出属性,
先将括号建立键值对,然后迭代时遇到键值对内元素
则弹出,否则继续压入堆内。迭代完毕后,若堆内不为空则无效,反之则有效。
时间O(n),空间O(n)(本题的map内键值对是固定的3组,所以空间是固定的,可以忽略不计)
public boolean isValid(String s) { HashMap<Character,Character> map = new HashMap<Character,Character>(); map.put('}','{'); map.put(']','['); map.put(')','('); Deque<Character> stack = new LinkedList<Character>(); for (int i=0;i<s.length();i++){ if (map.containsKey(s.charAt(i)) && map.get(s.charAt(i)).equals(stack.peek())){ stack.pop(); }else { stack.push(s.charAt(i)); } } return stack.isEmpty(); }
标签:map,20,HashMap,迭代,有效,括号,键值,put,new 来源: https://www.cnblogs.com/jchen104/p/14591335.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。