博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
每日算法----有效括号----2020/09/30(2/4)
阅读量:4131 次
发布时间:2019-05-25

本文共 1432 字,大约阅读时间需要 4 分钟。

目录

1. 题目描述

2. 示例

3. 思路

4. 遇上的问题

5. 具体实现代码

自己写的代码

class Solution {
public boolean isValid(String s) {
//看到题目第一眼就是栈 后来在建栈的时候添加了泛型,下面省去了强转的一步。 Stack stack = new Stack(); //遍历字符串,当遇到左括号直接写入, //遇到右括号判断栈顶是否为对应左括号,是则去除栈顶进入下个循环不是则报错。 for(int i = 0; i

6. 学习收获,官方算法这次好像不太妙啊

emm这次官方也不是很妙,通过的数据(时空击败率)跟我半斤八两。甚至我还小优一手。

class Solution {
public boolean isValid(String s) {
int n = s.length(); if (n % 2 == 1) {
return false; } Map
pairs = new HashMap
() {
{
put(')', '('); put(']', '['); put('}', '{'); }}; Deque
stack = new LinkedList
(); for (int i = 0; i < n; i++) {
char ch = s.charAt(i); //我觉得这里真的很妙,省去了大量的if语句 if (pairs.containsKey(ch)) {
if (stack.isEmpty() || stack.peek() != pairs.get(ch)) {
return false; } stack.pop(); } else {
stack.push(ch); } } return stack.isEmpty(); }}

作者:LeetCode-Solution

链接:https://leetcode-cn.com/problems/valid-parentheses/solution/you-xiao-de-gua-hao-by-leetcode-solution/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

虽然数据不是特别好看,但是也有值得学习的,通过了Map映射直接减少了大量的if语句,不像我写的,又臭又长,太难看了我的算法!!

7 题目来源


第二个!------swrici

你可能感兴趣的文章
自己的网站与UCenter整合(大致流程)
查看>>
laravel 制作通用的curd 后台操作
查看>>
【小红书2017年笔试】求一个数组中平均数最大的子数组
查看>>
Linux基础系列-定时器与时间管理
查看>>
Linux基础系列-可执行程序的产生过程
查看>>
Linux基础系列-Kernel 初始化宏
查看>>
Linux子系统系列-I2C
查看>>
<iOS>关于自定义description的一点用法
查看>>
Unix 命令,常用到的
查看>>
DLL中建立进程共享数据段需要注意的语法问题
查看>>
服务器端技术----Http请求的处理过程
查看>>
C语言-预处理指令2-条件编译
查看>>
C语言-预处理指令3-文件包含
查看>>
C语言-变量类型
查看>>
C语言-static和extern关键字1-对函数的作用
查看>>
C 语言-static和extern关键字2-对变量的作用
查看>>
【JavaScript 教程】浏览器—History 对象
查看>>
还不会正则表达式?看这篇!
查看>>
100道+ JavaScript 面试题,助你查漏补缺
查看>>
JavaScript深入理解之闭包
查看>>