唉,要开始好好准备面试了。
今天看到一道题目:
一个字符串,删除其中部分字母,能够组成的最长的回文串,是多长?
这道经典的题目,我居然开始的时候没想出来!虽然想到了动态规划,但是居然想到了首尾不同的话,尾部还要遍历,平白增加了非常多的编程复杂度。。。。。而实际上,只要简单的首尾比较然后动态规划就可以了!这是top-down,容易栈比较多。bottom-up的话,可以先看长度为1的结果,然后长度为2,然后长度继续增加。
如果又忘了。。。这里面有top-down的解法介绍:(代码没看,思想就是这样的)
要好好加油了!
里面search palindrome,可以看到一些题目:
。 | 409 |
| 44.5% | Easy | ||
。 | 336 |
| 24.7% | Hard |
| |
。 | 267 |
| 31.0% | Medium |
| |
。 | 266 |
| 55.1% | Easy |
| |
。 | 234 |
| 31.6% | Easy |
| |
。 | 214 |
| 23.0% | Hard |
| |
。 | 132 | Palindrome Partitioning II |
| 23.4% | Hard |
|
。 | 131 |
| 30.8% | Medium |
| |
。 | 125 |
| 25.3% | Easy |
| |
。 | 9 |
| 34.1% | Easy |
先看的这道题目:
214 |
| 23.0% | Hard |
我的解法在:
/Users/baidu/Documents/Data/Interview/leetcode/shortest-palindrome
太好了,实在太好了。要好好看。
然后看的这道题目:
409 |
| 44.5% | Easy |
|
解法在:javascript:void(0) 原题太简单了,如果不发散想想其他题目,没什么好看的。
| 131 |
| 30.8% | Medium |
也看了。我的方法是递归。里面有提到一种dp+dfs的解法。
132 |
| 23.4% | Hard |
这一道题目,难。
看了我自己的解法,是从中间发散的,还是很好的。
另外,我觉得借鉴上一道题目的思路,把每一个i.j是否palin的情况都列出来,然后dfs来得出最后一个元素所在的最少的分割,应该也能做出来。
| 266 |
| 55.1% | Easy |
locked的项目,较简单,思路比较清晰。
267 |
| 31.0% | Medium |
也是locked。解法里面先用map统计,然后用递归来减除并处理。也可以不用递归,那就要用栈。
9 |
| 34.1% | Easy |
解法真的蛮巧妙的。开始我就没想到。
336 |
| 24.7% | Hard |
难怪这是Hard难度的。开始的时候,以为循环遍历就可以了。其实不行的,会超时,还是要用map来查。
125 |
| 25.3% | Easy |
用到了stl里面的transform
234 |
| 31.6% | Easy |
题目还是蛮好的。我也想起来了。
再想到其他回文的题目,再补充。