有效的括号
有效 括号
2023-09-14 09:08:54 时间
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: "()"
输出: true
示例 2:
输入: "()[]{}"
输出: true
示例 3:
输入: "(]"
输出: false
示例 4:
输入: "([)]"
输出: false
示例 5:
输入: "{[]}"
输出: true
来源:力扣(LeetCode)
接替思路:
C++有链栈的包
既然可以直接用C++中的栈包,这题就相当好写了,首先得了解链栈的基本知识,其次就是如何使用栈包。
stack的定义:stack<typename> name;
压栈:name.push(i);
出栈:name.pop();因为出栈是弹出栈顶元素,所以无需传入参数
获取栈顶元素:name.top();
判断栈是否为空:name.empty();如果为空返回true,否则返回false
最后就是解题的核心思想:ASCII码对应的字符,如果扩后闭合,即对应的ASCII码相邻1或2;否则不闭合
代码1:
class Solution {
public:
bool isValid(string s) {
stack<char> linkstack;
int length=s.size();
if(length==0)
return true;
if(length%2)
return false;
linkstack.push(s[0]);
for(int i=1;i<length;i++){
if(linkstack.empty())
linkstack.push(s[i]);
else if(s[i]-linkstack.top()==1||s[i]-linkstack.top()==2)
linkstack.pop();
else
linkstack.push(s[i]);
}
return linkstack.empty();
}
};
代码2:
#include<iostream>
#include<stack>
#include<cstring>
using namespace std;
char arr[2000][1];
stack<char>st;
string validCheck(){
arr[')'][0]='(',arr['}'][0]='{',arr[']'][0]='[';
string str;
cin>>str;
int i=0;
char ch;
while (str[i])
{
ch = str[i++];
if (ch=='('||ch=='['||ch=='{')
{
st.push(ch);
}else
{
if (arr[ch][0]==st.top()){
st.pop();
}else if(st.empty()){
return "false";
}
}
}
if (!st.empty())
{
return "false";
}
return "true";
}
int main(){
cout<<validCheck();
}
相关文章
- LeetCode每日一题-7:有效的括号
- 有效的括号(leetcode 20)
- 155. 最小栈 & 20. 有效的括号
- 无效学习 VS 有效学习 (3)
- 2022-10-13:给定一个只包含三种字符的字符串:( 、) 和 *, 写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则: 任何左括号 (
- leetcode 32. 最长有效括号 js实现
- LeetCode | 有效的括号
- Linux桌面记事本:让您更有效地记录(linux桌面记事本)
- 优化MySQL效率优化:提升效率的有效SQL语句(mysql语句效率)
- 最长有效括号算法详解编程语言
- Linux虚拟IP绑定:一种快捷有效的网络配置方案(linux虚拟ip绑定)
- 数据库如何有效地管理MSSQL数据库(怎样管理mssql)
- 排列使用SQL Server正序排列记录的有效方法(sqlserver 正序)
- SQL Server保护数据安全:查询密码的有效方法(sqlserver查密码)
- Linux下简易命名技巧:利用括号更有效管理文件(linux 文件名括号)
- MSSQL表设计:有效组织业务数据(mssql表设计)
- Oracle内部审计有效防范风险控制(oracle内部审计)
- Oracle内存优化实现有效的清理技术(oracle 内存 清理)
- 管理Oracle数据库中参照类型的有效使用(oracle使用参照类型)
- 位应用程序,如何解决如何解决MySQL不是有效的32位应用程序问题,让您能够正常使用该数据库管理系统
- acle数据库性能的有效方法(oracle 优化or)
- Oracle PSPO技术提升数据库运行能力的有效方案(oracle pspo)