20. 有效的括号

题目链接:https://leetcode.cn/problems/valid-parentheses/submissions/

这道题也没做出来,因为没有想到用栈来保存括号的对应关系,而是想着用递归判断子串是否是左右匹配的括号。看了官方题解才想明白,汗!!!

 

5. 最长回文子串

题目链接:https://leetcode.cn/problems/longest-palindromic-substring/

下面这个解法理论上应该是正确的,暴力搜索法,但是实际上提交上去就会提示执行超时,因为真的是太费时间了。

等我研究下官方题解里面的高级算法再来重写一个吧,汗!!!

感觉自己就是个渣渣。。。。。。。。

ps. 已更新了中心扩展法实现。

 

8. 字符串转换整数 (atoi)

题目链接:https://leetcode.cn/problems/string-to-integer-atoi/

 

21. 合并两个有序链表

题目链接:https://leetcode.cn/problems/merge-two-sorted-lists/

刚开始思路有点乱,搞了快一个小时还是有错误,原因是我想把list1的node遍历一遍,按大小插入到list2,同时list2也要跟着一起遍历,这样就很难控制两个链表遍历的顺序和位置。

后来折腾很久都合并不好,就重头考虑了一把,感觉只需要把两个链表中比较小的那个node放到merged链表里就行了,谁的node被移动了,就跳到下一个node继续跟另一个链表的node比较大小,没有被移动到链表node位置不变,继续用来下一次比较,这样一来就简单多了,就是单链表的尾部插入操作了。

 

14. 最长公共前缀

题目链接:https://leetcode.cn/problems/longest-common-prefix/

 

7. 整数反转

题目链接:https://leetcode.cn/problems/reverse-integer/

这个题目关键点在于反转后的数字是否越界(超出int型范围),而且还不能用long型来判断是否越界(不能存储64位整型),这个判断条件我不了解,没有推导出来((rev < INT_MIN / 10 || rev > INT_MAX / 10)),所以最后提交之后用例有几个没通过。下面这个是看了官方题解写出来的。

 

我原来的思路(错误代码,输入x=1534236469时用例执行失败):

ps. 为啥要先转换成字符串之后再转回整数,主要是想尝试不同的解法(这道题跟之前回文数判断的题目有点类似,之前用了取模、除10得到最后一位数字的方法,这次想尝试另外的解法:http://aspirer.wang/?p=1585

 

450. 删除二叉搜索树中的节点

题目链接:https://leetcode.cn/problems/delete-node-in-a-bst/

这个题目自己没做出来,看的官方题解,最后一步successor找到之后再删除最后返回新的root这段没怎么看明白。

 

2. 两数相加

题目链接:https://leetcode.cn/problems/add-two-numbers/

 

 

1022. 从根到叶的二进制数之和

题目链接:https://leetcode.cn/problems/sum-of-root-to-leaf-binary-numbers/

 

9. 回文数

题目:https://leetcode.cn/problems/palindrome-number/

这里是先把每个数字取出来存到int[],然后while循环两头比对数字是否相同。也可以先用itoa转换成char[]类型,再strlen看长度,最后while循环两头比对字符是否相同,也是类似的逻辑。