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; } };
分类:
leetcode
· 复杂业务系统线上问题排查过程
· 通过抓包,深入揭秘MCP协议底层通信
· 记一次.NET MAUI项目中绑定Android库实现硬件控制的开发经历
· 糊涂啊!这个需求居然没想到用时间轮来解决
· 浅谈为什么我讨厌分布式事务
· 那些年我们一起追过的Java技术,现在真的别再追了!
· 还在手写JSON调教大模型?.NET 9有新玩法
· 为大模型 MCP Code Interpreter 而生:C# Runner 开源发布
· 面试时该如何做好自我介绍呢?附带介绍样板示例!!!
· JavaScript 编年史:探索前端界巨变的幕后推手