leetcode 20

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 20相关的知识,希望对你有一定的参考价值。

判断括号的顺序是否正确;

思路:用一个堆栈来存储符号序列,按照符号匹配规则进行堆栈操作;

   前括号一律入栈,后括号如果跟栈顶符号匹配,栈顶符号出栈如果,若不匹配则返回false;

   最后栈为空返回true,否则返回false;

 

代码如下:

 1 class Solution {
 2 public:
 3     bool isValid(string s) {
 4         int n = s.length();
 5         if(n%2 != 0)
 6         {
 7             return false;
 8         }
 9         vector<char> stack;
10         if(s[0] != \'(\' && s[0] != \'[\' && s[0] != \'{\')
11         {
12             return false;
13         }
14         else
15         {
16             stack.push_back(s[0]);
17         }
18         int j = 1;
19         for(int i = 1; i < n; ++i)
20         {
21             if(s[i] == \'(\' || s[i] == \'[\' || s[i] == \'{\')
22             {
23                 stack.push_back(s[i]);
24             }
25             else if(s[i] == \')\')
26             {
27                 if(stack.back() == \'(\')
28                 {
29                     stack.pop_back();
30                 }
31                 else
32                 {
33                     return false;
34                 }
35             }
36             else if(s[i] == \']\')
37             {
38                 if(stack.back() == \'[\')
39                 {
40                     stack.pop_back();
41                 }
42                 else
43                 {
44                     return false;
45                 }
46             }
47             else if(s[i] == \'}\')
48             {
49                 if(stack.back() == \'{\')
50                 {
51                     stack.pop_back();
52                 }
53                 else
54                 {
55                     return false;
56                 }
57             }
58         }
59         if(stack.empty())
60         {
61             return true;
62         }
63         else
64         {
65             return false;
66         }
67     }
68 };

 

以上是关于leetcode 20的主要内容,如果未能解决你的问题,请参考以下文章

20个简洁的 JS 代码片段

1 代码片段1

PTA乙级 (1049 数列的片段和 (20分))

Leetcode.1024 视频拼接

LeetCode810. 黑板异或游戏/455. 分发饼干/剑指Offer 53 - I. 在排序数组中查找数字 I/53 - II. 0~n-1中缺失的数字/54. 二叉搜索树的第k大节点(代码片段

LEETCODE 003 找出一个字符串中最长的无重复片段