Leecode20 有效的括号
![题目要求](https://img-blog.csdnimg.cn/a852f79466f84c07b6196be505ab5b8d.png#pic_center)
通过代码
class Solution {
public:
bool isValid(string s) {
unordered_map<char,char> maprelation={
{'[',']'},{'(',')'},{'{','}'},
};
stack <char> a;
int len=s.size()+1;
char *arr = new char[len];
strcpy(arr, s.c_str());
a.push(arr[0]);
char now=maprelation[arr[0]];
for(int i=1;i<(len-1);i++){
if(arr[i]==now){
a.pop();
if (!a.empty()){
char b=a.top();
now=maprelation[b];
}else{
now='a';
continue;
}
}
else{
a.push(arr[i]);
now=maprelation[arr[i]];
}
}
return a.empty();
}
};
代码笔记
- 用到了栈解决问题,c++中的stack类
- 运用unordered_map解决问题
- 一些将string类型字符串转换为char数组的方式