点击上方“专知”,关注获取专业AI知识”
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.
题目的意思是判断给定的字符串中的各个括号字符的出现是否符合括号构成的规则。
思路:只要遇到括号匹配的问题,我们就选择用栈,遇到左括号就进栈,遇到右括号,就判断栈顶元素是否与之匹配,匹配的话就pop出栈,不匹配的话就返回false。用到了栈的一些语法:栈如果是空的,取栈顶元素会越界,必须得保证栈不是空的前提下,才能取栈顶元素。
class Solution {
public:
bool isValid(string s) {
stack<char>store;
for(int i=0; i<s.size(); i++)
{
if(s[i]=='(' || s[i]=='{' || s[i]=='[')
store.push(s[i]);
else
{
if(store.empty())
return false;
else
{
int temp=store.top();
if( s[i]==')' && temp=='(' || s[i]==']' && temp=='[' || s[i]=='}' && temp=='{')
store.pop();
else
return false;
}
}
}
if(store.empty())
return true;
else
return false;
}
};
人生易老,唯有陪伴最长情,加油!
以上就是关关关于这道题的总结经验,希望大家能够理解,有什么问题可以在我们的专知公众号平台上交流或者加我们的QQ专知-人工智能交流群 426491390,也可以加入专知——Leetcode刷题交流群(请先加微信小助手weixinhao: Rancho_Fang)。
专知网站查看Leetcode刷题日记:
请登录www.zhuanzhi.ai或者点击阅读原文,顶端搜索“Leetcode” 主题,取查看获得专知Leetcode所有资源!如下图所示~
群满,请扫描小助手(备注leetcode),加入专知-LeetCode学习交流群,交流分享~
欢迎转发到你的微信群和朋友圈,分享专业AI知识!
-END-
欢迎使用专知
专知,一个新的认知方式!专注在人工智能领域为AI从业者提供专业可信的知识分发服务, 包括主题定制、主题链路、搜索发现等服务,帮你又好又快找到所需知识。
使用方法>>访问www.zhuanzhi.ai, 或点击文章下方“阅读原文”即可访问专知
中国科学院自动化研究所专知团队
@2017 专知
专 · 知
关注我们的公众号,获取最新关于专知以及人工智能的资讯、技术、算法、深度干货等内容。扫一扫下方关注我们的微信公众号。
点击“阅读原文”,使用专知!