Valid Parentheses 使用递归的解法
class Solution { public: bool isValid(string s) { if(s.size()<2||s.size()%2!=0)return false; unordered_map<char,char>hashmap; hashmap['(']=')'; hashmap['[']=']'; hashmap['{']='}'; if(s.size()==2)return hashmap[s[0]]==s[1]; int i=1; int sum1=0,sum2=0; int j; while(i<s.size()) { j=i-1; if(s[j]==s[0])++sum1; if(s[i]==hashmap[s[0]]){ ++sum2; if(sum1==sum2){ if(i==s.size()-1)return isValid(s.substr(1,s.size()-2)); if(i==1)return isValid(s.substr(2,s.size()-2)); return isValid(s.substr(1,i-1))&&isValid(s.substr(i+1,s.size()-1-i)); } } i=i+2; } return false; } };
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步