03 2021 档案

摘要:基本思想: 本来想用DFS加剪枝,发现不太好写,此次题目没想到还是采用dp思想; DP方程的问题: 主要难在方程的构建,主旨思想是通过区间判别; 其中dp为二维数组,其中dp[i][j]为s[0:i]和t[0:j]中元素相等个数; 对于0~i个元素,如果s[i]=t[j],可以产生两种0-i-1子序 阅读全文
posted @ 2021-03-17 10:13 暮云林凌 阅读(97) 评论(0) 推荐(0)
摘要:使用传统栈后缀表达式+弹栈计算,爆时间爆内存,垃圾解法; map<char, int>mp; vector<string>bs; void init() { mp['+'] = 0; mp['-'] = 0; mp['*'] = 1; mp['/'] = 1; } void back_string( 阅读全文
posted @ 2021-03-11 09:39 暮云林凌 阅读(67) 评论(0) 推荐(0)
摘要:计算器得简单题,本来想用后缀+栈来解决,但是没想到只涉及加减和括号可以直接用括号展开得思想进行解决; 主要方法是使用栈来记录当前整个括号内的值; 对字符串内的符号进行记录,为括号展开作准备; 例如:-(2+1) 记录负号之后,遇到左括号直接压栈,此时取栈顶符号进行+,-号判断时,可以达到相反的判断逻 阅读全文
posted @ 2021-03-10 10:26 暮云林凌 阅读(70) 评论(0) 推荐(0)
摘要:简单题,但是当时第一反应没有想到比较好用的数据结构,最后才发现用栈比较合理; 如果不用栈,直接采用两两对比使用递归来做: class Solution { public: string fun(string s) { if (s.size() <= 1) return s; string ss = 阅读全文
posted @ 2021-03-09 20:48 暮云林凌 阅读(95) 评论(0) 推荐(0)