LeetCode OJ:Valid Parentheses(有效括号)
2024-10-22 08:36:55
Given a string containing just the characters '('
, ')'
, '{'
, '}'
, '['
and ']'
, determine if the input string is valid.
The brackets must close in the correct order, "()"
and "()[]{}"
are all valid but "(]"
and "([)]"
are not.
简单的堆栈问题,代码如下:
class Solution {
public:
bool isValid(string s) {
if(!s.size())
return true;
char c;
stack<char> stk;
for(int i = ; i < s.size(); ++i){
if(s[i] == '[' || s[i] == '{' || s[i] == '('){
stk.push(s[i]);
continue;
}else if(s[i] == ']'){
if(stk.empty())
return false;
c = stk.top();
stk.pop();
if(c != '[')
return false;
}else if(s[i] == '}'){
if(stk.empty())
return false;
c = stk.top();
stk.pop();
if(c != '{')
return false;
}else{
if(stk.empty())
return false;
c = stk.top();
stk.pop();
if(c != '(')
return false;
}
}
if(stk.empty())
return true;
return false;
}
};
简单一点的话可以使用下面这种方式:
bool ValidParentheses(string s)
{
if (!s.size())
return true;
stack<char> stk;
map<char, char> m;
m['('] = ')';
m['['] = ']';
m['{'] = '}';
for (auto c : s){
if (c == '(' || c == '[' || c == '{'){
stk.push(c);
}
else if (c == ')' || c == ']' || c == '}'){
if (stk.empty())
return false;
if (c == m[stk.top()])
stk.pop();
else
return false;
}
}
if (stk.empty())
return true;
return false;
}
java版本代码如下所示:
public class ValidParentheses {
public static void main(String[] args) {
// TODO Auto-generated method stub
ValidParentheses validParentheses = new ValidParentheses();
String string = new String("[]{}(){[]}");
System.out.println("" + validParentheses.ValidParentheses(string));
} boolean ValidParentheses(String str){
if(str.length() == 0)
return true;
Stack<Character> stk = new Stack<Character>();
char [] parentheses = str.toCharArray();
for(char c : parentheses){
if(c == '(' || c == '{' || c == '['){
stk.push(c);
}else if(c == ')'){
if(stk.empty() || stk.pop() != '(')
return false;
}else if(c == '}'){
if(stk.empty() || stk.pop() != '{')
return false;
}else if(c == ']'){
if(stk.empty() || stk.pop() != '[')
return false;
}
}
if(stk.empty())
return true;
return false;
}
}
最新文章
- 爆一个VS2015 Update1更新带来的编译BUG【已有解决方案】
- [Leetcode] Permutations II
- sql数剧操作语言
- 2014 网选 5014 Number Sequence(异或)
- [CareerCup] 8.7 Chat Server 聊天服务器
- jquery动画效果---animate()--滚屏
- 关于python的环境变量问题
- android学习日记16--GridView(网格视图)
- 关于Spring的Controller及Struts的Action的多线程的注意
- Tomcat类加载器
- Golang http 服务器
- 在MySQL和PostgreSQL之外,为什么阿里要研发HybridDB数据库?
- VsCode 使用专用编程字体FiraCode
- 2059-authentication plugin &#39;caching_sha2_password";cnnot bt loaded :mysql8.0数据库链接不上:
- cookie 处理 以及模拟登陆
- python 多文件知识
- C# 使用lambda表达式过滤掉数组中的空字符串
- idea列表
- python3.6 连接mysql数据库
- Win32 Debug &; Release
热门文章
- 安卓项目eclipse有用教程:设置应用名字和图标、屏幕、签名、真机调试、clean、logcat、json解析
- ionic真机调试Android报错 - could not read ok from ADB Server * failed to start daemon * error: cannot connect to daemon
- Java并发(1):synchronized
- PL/SQL编程—变量
- 杭电1023Train Problem II
- SVN如何切换用户对代码进行操作
- linux命令(6/9):watch命令
- 使用Linq to XML 修改app.config
- Spring 之 @ComponentScan以及mock Spring MVC
- Python3.x:ConfigParser模块的使用