当前位置: 首页 > 编程日记 > 正文

leetcode-20 有效的括号匹配

给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。

注意空字符串可被认为是有效字符串

示例 1:

输入: “()”
输出: true

示例 2:

输入: “()[]{}”
输出: true

方法一:
遇到左括号,压栈
遇到右括号,弹栈

bool isValid(string s) {if(s.length() == 0) return true;stack<char> S;for (int i = 0;i < s.length(); ++i) {switch(s[i]) {case ')':{if(!S.empty()) {if(S.top() == '('){S.pop();} else {return false;}}else {return false;}break;}case ']':{if(!S.empty()) {if(S.top() == '['){S.pop();} else {return false;}}else {return false;}break;                    }case '}':{if(!S.empty()) {if(S.top() == '{'){S.pop();} else {return false;}}else {return false;}break;                    }case '(':{S.push(s[i]);break;}case '[':{S.push(s[i]);break;}case '{':{S.push(s[i]);break;}}}if (S.size() != 0) {return false;}return true;
}

方法二:
同样的思路,优化代码逻辑,使用map建立括号之间的映射关系

bool isValid(string s) {map<char,int> m{{'(',1},{'[',2},{'{',3},{')',4},{']',5},{'}',6}};stack<char> st;bool res=true;for(char c:s){int flag=m[c];if(flag>=1&&flag<=3) st.push(c);else if(!st.empty()&&m[st.top()]==flag-3) st.pop();else {res=false;break;}}if(!st.empty()) res=false;return res;
}

相关文章:

将ADS1.2的工程迁移到KEIL上-基于2440

新版的MDK支持2440相关芯片,但是很多人的工程都是基于ADS1.2开发,文字不好看,兼容性不好等等问题,而且电脑上装太多开发工具切换起来也麻烦,所以切换到MDK开发2440裸机程序应该是一个很好的选择 1. 新建MDK工程,芯片选择2440 不拷贝启动代码,因为我们用自己的启动代码 2.…

mysql占用资源最小的语句_MySQL一个语句查出各种整形占用字节数及最大最小值的实例...

直接上码&#xff1a;select bigint unsigned as type ,8 as bytes ,~0 as max_num,0 as min_num unionselect int unsigned,4,~0>>32,0 unionselect mediumint unsigned,3,~0>>40,0 unionselect smallint unsigned,2,~0>>48,0 unionselect tinyint unsigned…

使用命名管道的OVERLAPPED方式实现非阻塞模式编程 .

命令管道是进程间通讯的一种常用方式&#xff0c;对于命令管道的介绍可以参考别的资料和书籍&#xff0c;这里推荐一个《VC下命名管道编程的原理及实现》这篇博文&#xff0c;写得比较清楚。但是都是介绍了阻塞模式的编程&#xff0c;我这里主要是介绍利用命令管道OVERLAPPED方…

读梦断代码有感(1)2019.2.05

今天阅读了建民老师推荐的我们软件工程方面的书籍被称为经典的《梦断代码》&#xff0c;虽然只是读了一小部分但还是感受颇深&#xff0c;在我以往的经验看来&#xff0c;我们软件工程专业的书籍应该都是枯燥乏味的代码啊啥的&#xff0c;所以开始我并没有对这本书有多大的期望…

leetcode-25 K个一组反转链表

给你一个链表&#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回翻转后的链表。 k 是一个正整数&#xff0c;它的值小于或等于链表的长度。 如果节点总数不是 k 的整数倍&#xff0c;那么请将最后剩余的节点保持原有顺序。 示例 : 给定这个链表&#xff1a;1->2-…

自己动手写简单的web应用服务器(4)—利用socket实现文件的下载

直接上源码&#xff1a; 服务器&#xff1a; 1 package download;2 3 import java.io.BufferedInputStream;4 import java.io.BufferedOutputStream;5 import java.io.File;6 import java.io.FileInputStream;7 import java.io.IOException;8 import java.io.OutputStream;9 im…

mysql 数据泵_Oracle 数据泵详解

一、 EXPDP和IMPDP使用说明 Oracle Database 10g引入了最新的数据泵(Data Dump)技术&#xff0c;数据泵导出导入(EXPDP和IMPDP)的作用 1)实现逻辑备份和逻辑恢复. 2)在数据库用户之间移动对象. 3)在数据库之间移动对象 4)实现表空间搬移. 二、数据泵导出导入与传统一、EXPDP和I…

php 使用curl模拟登录discuz以及模拟发帖

<?php$discuz_url http://127.0.0.1/discuz/;//论坛地址$login_url $discuz_url .logging.php?actionlogin;//登录页地址 $post_fields array();//以下两项不需要修改$post_fields[loginfield] username;$post_fields[loginsubmit] true;//用户名和密码&#xff0c;必…

Java数组的初始化

1.动态初始化 数据类型 [] 变量名 new 数据类型 [数组大小]; //数组的动态初始化int [] arr new int [3]; 2.静态初始化 数据类型 [] 变量名 {元素1&#xff0c;元素2.....} //数组的静态初始化int [] arr2 {1,2,3}; 转载于:https://www.cnblogs.com/luguankun/p/1043128…

leetcode-135 分发糖果

题目描述&#xff1a; 老师想给孩子们分发糖果&#xff0c;有 N 个孩子站成了一条直线&#xff0c;老师会根据每个孩子的表现&#xff0c;预先给他们评分。 你需要按照以下要求&#xff0c;帮助老师给这些孩子分发糖果&#xff1a; 每个孩子至少分配到 1 个糖果。 相邻的孩子…

mysql主从数据库含义_(转)Mysql数据库主从心得整理

管理mysql主从有2年多了&#xff0c;管理过200多组mysql主从&#xff0c;几乎涉及到各个版本的主从&#xff0c;本博文属于总结性的&#xff0c;有一部分是摘自网络&#xff0c;大部分是根据自己管理的心得和经验所写&#xff0c;整理了一下&#xff0c;分享给各位同行&#xf…

Const 重载解析

1. Const重载应用场景 首先&#xff0c;对于函数值传递的情况&#xff0c;因为参数传递是通过复制实参创建一个临时变量传递进函数的&#xff0c;函数内只能改变临时变量&#xff0c;但无法改变实参。则这个时候无论加不加const对实参不会产生任何影响。但是在引用或指针传递函…

Ubuntu手机系统会成为第四大手机系统吗

啊蛋评论&#xff1a;先不说哪令人“卧槽”的配置&#xff01;就冲着这双系统。。也要体验一下&#xff01;&#xff08;lz不是给ubuntu写软文的。完全是个人评论。&#xff09; Ubuntu开发商Canonical发布了代号为Edge的智能手机&#xff0c;与其说是发布&#xff0c;倒不如…

codechef ANUCBC(背包)

题目链接: https://www.codechef.com/problems/ANUCBC 按模数进行背包 取模不要直接取&#xff0c;分开写&#xff0c;不然会T #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<queue> #include<stack&…

leetcode-386 字典序排数

给定一个整数 n, 返回从 1 到 n 的字典顺序。 例如&#xff0c; 给定 n 13&#xff0c;返回 [1,10,11,12,13,2,3,4,5,6,7,8,9] 。 请尽可能的优化算法的时间复杂度和空间复杂度。 输入的数据 n 小于等于 5,000,000。 根据题目描述&#xff0c;所谓字典顺序&#xff0c;即数…

零售连锁专卖信息化解决方案简介之二

连锁零售它提供了对商业连锁的整体管理&#xff0c;从商品采购开始到面向最终消费者各阶段都可以找到连锁零售的解决方案。连锁零售针对批发、连锁、零售业供应链中不同的业态提出了不同的解决方案。在信息管理系统的层次中隶属于经营决策型&#xff0c;可以帮助企业全面实现DS…

mysql客户端指令_mysql command line client(mysql命令行客户端)

mysql command line client(mysql命令行客户端)(2010-03-24 09:18:38)标签&#xff1a;文化分类&#xff1a;数据库1.输入密码&#xff1a;******2.ues mysql;使用Mysql3.show databases;显示数据库4.use register;使用数据库名为register5.show tables;显示register数据库中的…

StingBuffer

2019独角兽企业重金招聘Python工程师标准>>> 昨天面试问道一题&#xff1a;StringBuffer的底层实现原理是什么&#xff1f;当时想想应该是字符串数组吧&#xff0c;心里也不是有万分把握&#xff0c;面试结果只能等通知了&#xff08;最没戏的结果&#xff09;&…

[HAOI2015]按位或

Description 刚开始你有一个数字0&#xff0c;每一秒钟你会随机选择一个[0,2^n-1]的数字&#xff0c;与你手上的数字进行或&#xff08;c,c的|,pascal的or&#xff09;操作。选择数字i的概率是p[i]。保证0<p[i]<1&#xff0c;Σp[i]1问期望多少秒后&#xff0c;你手上的数…

leetcode-440 字典序的第K小数字

给定整数 n 和 k&#xff0c;找到 1 到 n 中字典序第 k 小的数字。 注意&#xff1a;1 ≤ k ≤ n ≤ 10^9。 示例 : 输入: n: 13 k: 2 输出: 10 解释: 字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9]&#xff0c;所以第二小的数字是 10。 字典排序数的实现可以…

centos 编译 mysql_Centos编译mysql

下载源码wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.23.tar.gztar zxvf mysql-5.6.23.tar.gz安装必要的包sudo yum install cmake gcc gcc-c ncurses-devel perl-Data-Dumper cmake ncurses-devel bison autoconf automake zlib* fiex* libxml* libmcrypt* …

java.lang.NoSuchMethodException 错误

报错&#xff1a; Stacktraces java.lang.NoSuchMethodException: com.gssw.action.ProAction.update() java.lang.Class.getMethod(Class.java:1607)org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.getActionMethod(AnnotationValidationInterce…

tomcat server.xml中文版

为什么80%的码农都做不了架构师&#xff1f;>>> Tomcat Server的结构图 该文件描述了如何启动Tomcat Server <Server> <Listener /> <GlobaNamingResources> </GlobaNamingResources <Service> <Connector /> <Engine> &l…

idea(2)快捷键

CtrlE&#xff1a;最近编辑文件 CtrlJ&#xff1a;自动代码快捷 CtrlN&#xff1a;查找类 CtrlU&#xff1a;大小写转换 CtrlF12&#xff1a;outline Alt1&#xff1a;全屏 AltF1&#xff1a;类定位到左侧目录 AltInsert&#xff1a;万能创建 AltEnter&#xff1a;导入包 CtrlA…

leetcode-102 二叉树的层次遍历

给定一个二叉树&#xff0c;返回其按层次遍历的节点值。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 例如: 给定二叉树: [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7 返回其层次遍历结果&#xff1a; [ [3], [9,20], [15,7] ] 方法一&#xff08…

mysql.err日志分析_Mysql日志解析

转载:https://www.cnblogs.com/Fly-Wind/p/5674382.html修改Mysql配置Mysql配置地址为&#xff1a;C:\Program Files (x86)\MySQL\MySQL Server 5.5如果无法修改可以把my.ini拷贝出来&#xff0c;修改完后&#xff0c;再拷贝回去&#xff01;如果配置了Mysql的日志生成路径&…

linux进程间通信-XSI IPC

一 什么是XSI IPC 有三种 IPC我们称作XSI IPC&#xff0c;即消息队列、信号量以及共享存储器&#xff08;共享内存&#xff09;&#xff0c;它们之间有很多相似之处。二 标识符和键 每个内核中的 IPC结构&#xff08;消息队列、信号量或共享内存&#xff09;都用一个非负整数的…

Linux命令之route - 显示和操作IP路由表

转自&#xff1a; http://codingstandards.iteye.com/blog/1125312 用途说明 route命令用于显示和操作IP路由表&#xff08;show / manipulate the IP routing table&#xff09;。要实现两个不同的子网之间的通信&#xff0c;需要一台连接两个网络的路由器&#xff0c;或者同…

ActivityRouter 框架简单实用

ActivityRouter组件化开发小助手用法如下&#xff1a; 跟目录build.gradle dependencies {// activityRouterclasspath com.neenbedankt.gradle.plugins:android-apt:1.8}allprojects {repositories {// ActivityRoutermaven { url "https://jitpack.io" }} } module…

C++ 互斥锁和条件变量实现读写锁

最近的诸多面试经历确实让自己发现内功还不够&#xff0c;还需要持续的学习精进。 实现如下&#xff1a; class RWLock{private:int state;mutex mu;condition_variable cond;public:RWLock():state(0){}void rlock(){mu.lock();while(state < 0){cond.wait(mu);}state;mu…