class Solution {
public:
bool isValid(string s) {
int start=,end=s.size()-;
if(end==-)//万万没想到,他把空字符串当成true了
return true; int ss[end+];//歪方法,把左括号全部<0,右括号都>0,且同类型符号绝对值一样
for(int i=;i<end+;i++)
{
if(s[i]=='(')
ss[i]=-;
else if(s[i]==')')
ss[i]=;
else if(s[i]=='{')
ss[i]=-;
else if(s[i]=='}')
ss[i]=;
else if(s[i]=='[')
ss[i]=-;
else if(s[i]==']')
ss[i]=;
else
return false;
} stack<int> str;
while(start<end+)//要等于end啊,老是忘
{
if(ss[start]<)//如果小于0就入栈
str.push(ss[start]); if(ss[start]>)//如果大于0,判断栈空不空,不空的话栈顶和当前数是否编号
{
if(!str.empty() && ss[start]==-*(str.top()))
str.pop();
else
return false;//否则假
}
start++;
} if(!str.empty())//结束后检测栈空不,不然对于全是左括号的就通过了
return false;
return true;
}
};

分析:

一个简单题啊,还是情况没分析到位,一开始思路错了。

后来思路对了,但是程序总是有毛病,但是总得来说还是情况没分析到位。

leecode第二十题(有效的括号)的更多相关文章

  1. LeetCode第二十题-有效的括号

    Valid Parentheses 问题简介: 给定一个只包含字符 ‘(’ , ‘)’ , ‘{’ , ‘}’ , ‘[’ , ‘]’ 的字符串,确定输入字符串是否有效 有效的条件: 必须使用相同类型 ...

  2. leecode第二十六题(删除排序数组中的重复项)

    class Solution { public: int removeDuplicates(vector<int>& nums) { int len=nums.size(); ) ...

  3. leecode第二十三题(合并K个排序链表)

    /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode ...

  4. leecode第二十一题(合并两个有序链表)

    /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode ...

  5. codeforces水题100道 第二十题 Codeforces Round #191 (Div. 2) A. Flipping Game (brute force)

    题目链接:http://www.codeforces.com/problemset/problem/327/A题意:你现在有n张牌,这些派一面是0,另一面是1.编号从1到n,你需要翻转[i,j]区间的 ...

  6. 《剑指offer》第二十题(表示数值的字符串)

    // 面试题20:表示数值的字符串 // 题目:请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如, // 字符串“+100”.“5e2”.“-123”.“3.1416”及“-1E-16 ...

  7. 【leetcode 简单】第二十题 合并两个有序数组

    给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n. ...

  8. 第六章第二十题(计算一个字符串中字母的个数)(Count the letters in a string) - 编程练习题答案

    *6.20(计算一个字符串中字母的个数)编写一个方法,使用下面的方法头计算字符串中的字母个数: public static int countLetters(String s) 编写一个测试程序,提示 ...

  9. 《Linux命令行与shell脚本编程大全》 第二十二章 学习笔记

    第二十二章:使用其他shell 什么是dash shell Debian的dash shell是ash shell的直系后代,ash shell是Unix系统上原来地Bourne shell的简化版本 ...

随机推荐

  1. Java笔记 #03# HtmlUnit爬虫

    存档留用 (= 存档留着备用) 爬的是一个开放的自动回复机器人 API 网站 http://i.itpk.cn/. 结构 大致如下: 我做的事情就是[输入文字,点击按钮,爬取内容],如上图所示. pa ...

  2. curl命令基本使用小总结

    curl 下载文件 -o:将文件保存为命令行中指定的文件名的文件中 -O:使用URL中默认的文件名保存文件到本地 --limit-rate:限速 -C:对大文件使用断点续传功能 --silent:不显 ...

  3. 20145221高其_Web安全基础实践

    20145221高其_Web安全基础实践 目录 实践目标 WebGoat BurpSuite Injection Flaws Cross-Site Scripting (XSS) 总结 实践目标 (1 ...

  4. Wxpython零基础制作计算器

    本文关于Wxpython零基础利用python3.6在pycharm下制作计算器,文章末尾有免费源代码供下载 以后同步更新到博客园和这个网站,www.empirefree.top, 这个网站备案号没有 ...

  5. IIC学习

    1 概述: IIC是用两条双向的线,一条SDA(serial data line),一条SCL(serial clock). SCL:上升沿将数据输入到每个EEPROM器件中,下降沿驱动EEPROM器 ...

  6. topcoder srm 420 div1

    problem1 link 暴力即可.因为即便所有数字的和是50,50所有的不同的划分数只有204226中.所以最长的循环也就这么大. problem2 link 令$f[i][j]$表示有$i$个红 ...

  7. SVM学习笔记1-问题定义

    问题定义: 给出一些样本,包含两类.svm试图找到一个超平面,将数据分开,并且每种样本到超平面的距离的最小值最大. 输入样本:$\{x_{i},y_{i}| 1\leq i\leq n \}$,$y_ ...

  8. Sublime Text3--安装使用教程资料整理

    Sublime Text快捷键:   Ctrl + ←/→进行逐词移动,相应的,Ctrl + Shift + ←/→进行逐词选择.   Ctrl+Shift+P:打开命令面板 Ctrl+P:搜索项目中 ...

  9. 41. 包含min函数的栈

    包含min函数的栈 描述 设计一个支持push,pop,top等操作并且可以在O(1)时间内检索出最小元素的堆栈. push(x)–将元素x插入栈中 pop()–移除栈顶元素 top()–得到栈顶元素 ...

  10. tp框架中 关于数据库mysql 的一些疑点知识

    mysql创建索引, 通常是在 创建表的 同时/时候, 就创建了 即使是在win下, 用命令行操作数据库 , 也要比 图形界面的鼠标操作快得多 索引的类型有: unique, fulltext索引, ...