leetcode 678. Valid Parenthesis String 有效括号的判断
来源:互联网 发布:centos 离线安装ruby 编辑:程序博客网 时间:2024/06/16 08:06
Given a string containing only three types of characters: ‘(‘, ‘)’ and ‘*’, write a function to check whether this string is valid. We define the validity of a string by these rules:
Any left parenthesis ‘(’ must have a corresponding right parenthesis ‘)’.
Any right parenthesis ‘)’ must have a corresponding left parenthesis ‘(‘.
Left parenthesis ‘(’ must go before the corresponding right parenthesis ‘)’.
‘*’ could be treated as a single right parenthesis ‘)’ or a single left parenthesis ‘(’ or an empty string.
An empty string is also valid.
Example 1:
Input: “()”
Output: True
Example 2:
Input: “(*)”
Output: True
Example 3:
Input: “(*))”
Output: True
Note:
The string size will be in the range [1, 100].
本题题意很简单,就是多添加了一个*的处理
建议和leetcode 32. Longest Valid Parentheses 最长有效括号长度 和 leetcode 20. Valid Parentheses 一起学习
代码如下:
#include <iostream>#include <vector>#include <map>#include <set>#include <queue>#include <stack>#include <string>#include <climits>#include <algorithm>#include <sstream>#include <functional>#include <bitset>#include <numeric>#include <cmath>#include <regex>using namespace std;class Solution {public: bool checkValidString(string s) { stack<int> left, star; for (int i = 0; i < s.length(); i++) { if (s[i] == '*') star.push(i); else if (s[i] == '(') left.push(i); else { if (left.empty() == false) left.pop(); else if (star.empty() == false) star.pop(); else return false; } } while (left.empty() == false && star.empty() == false) { if (star.top() < left.top()) return false; else { left.pop(); star.pop(); } } return left.empty() == true; }};
- leetcode 678. Valid Parenthesis String 有效括号的判断
- [LeetCode]Valid Parenthesis String
- LeetCode-Valid Parenthesis String
- LeetCode OJ 之 Valid Parentheses(有效的括号判断)
- 678. Valid Parenthesis String
- 678. Valid Parenthesis String
- 678. Valid Parenthesis String
- leetcode 678 Valid Parenthesis String
- 【LeetCode】- Valid Parentheses(有效的括号)
- LeetCode-20-Valid Parentheses(有效的括号)
- Valid Parentheses 判断括号组合是否有效@LeetCode
- leetcode Valid Parentheses 有效括号
- LeetCode--Longest Valid Parentheses(最长有效的括号)
- LeetCode | Longest Valid Parentheses(最长有效的括号匹配)
- LeetCode 20 Valid Parentheses(有效的括号)
- LWC 50:678. Valid Parenthesis String
- LeetCode678. Valid Parenthesis String
- Valid Parentheses 判断括号组合是否有效
- 习题8.1
- Nginx 高级应用-负载均衡
- Redis 安装报错 error: jemalloc/jemalloc.h: No such file or directory解决方法
- SQL反模式(六)
- linux 新建用户、用户组 以及为新用户分配权限
- leetcode 678. Valid Parenthesis String 有效括号的判断
- 这坑货 (迭代+迭代终止条件(由误差控制))
- Watchman安装错误
- Java垃圾回收(1)
- Spark 常见问题解决方案
- 编程之美-翻烙饼问题
- HTML5第一阶段(第一章HTML基础)
- JS內建对象Math
- docker使用方法