今天是easy的一天,有了surface,双设备的感觉真是好丝滑,等等攒一波钱换个lg屏,咱就是生产力完全体了
不说了,讲下题,这个是真的蛮简单的,评论里有说这是昨天晚上bilibili笔试的原题,希望到时候也都是easy哈哈
这题使用了栈,从左至右读取,左括号入栈,遇到右括号就pop出栈顶元素,看是否匹配,不匹配false,匹配继续,就是这样。
若全部元素读取完了,则应该检查栈中是否有剩余元素。没有才true。并应当应对在栈空时直接输入右括号的情况。
就是这样,明天hard见
class Solution {
public:
bool isValid(string s) {
if(s=="") return true;
int n=s.length();
stack<char> st;
for(int i=0;i<n;i++){
if(s[i]=='('||s[i]=='{'||s[i]=='[')
{
st.push(s[i]);
}
else if(!st.empty())
{
char cur=st.top();
st.pop();
if(s[i]==')'&&cur=='(')
continue;
else if(s[i]=='}'&&cur=='{')
continue;
else if(s[i]==']'&&cur=='[')
continue;
else return false;
}
else return false;
}
if(st.empty())
return true;
else return false;
}
};