【去哪兒】表示式合法判斷
阿新 • • 發佈:2018-11-05
題目描述
寫一段程式碼,判斷一個包括'{','[','(',')',']','}'的表示式是否合法(注意看樣例的合法規則。)
給定一個表示式A,請返回一個bool值,代表它是否合法。
測試樣例:
"[a+b*(5-4)]*{x+b+b*(({1+2}))}"
返回:true
#include <unordered_map> class ChkExpression { public: bool chkLegal(string str) { // write code here unordered_map<char, char> table; table['{'] = '}'; table['('] = ')'; table['['] = ']'; stack<char> temp; for(auto item:str) { if(item == '['|| item == '{' || item == '(') temp.push(item); else if(item == ']'|| item == '}' || item == ')') { if(temp.size()>0) { char top = temp.top(); if(table[top] == item) temp.pop(); else return false; } else return false; } } if(temp.size()>0) return false; else return true; } };