唉,要开始好好准备面试了。

 

今天看到一道题目:

一个字符串,删除其中部分字母,能够组成的最长的回文串,是多长?

 

这道经典的题目,我居然开始的时候没想出来!虽然想到了动态规划,但是居然想到了首尾不同的话,尾部还要遍历,平白增加了非常多的编程复杂度。。。。。而实际上,只要简单的首尾比较然后动态规划就可以了!这是top-down,容易栈比较多。bottom-up的话,可以先看长度为1的结果,然后长度为2,然后长度继续增加。

如果又忘了。。。这里面有top-down的解法介绍:​​​​(代码没看,思想就是这样的)

 

要好好加油了!

 

里面search palindrome,可以看到一些题目:


 。


409  


​Longest Palindrome​​ 

 

44.5%

 Easy

 。

336


​Palindrome Pairs​​  


 

24.7%

Hard

 

 。

267


​Palindrome Permutation II​​  


 

31.0%

Medium

 

 。

266


​Palindrome Permutation​​  


 

55.1%

Easy

 

 。

234


​Palindrome Linked List​​  


 

31.6%

Easy

 

 。

214


​Shortest Palindrome​​  


 

23.0%

Hard

 

 。

132


​Palindrome Partitioning II​​  


 

23.4%

Hard

 

 。

131


​Palindrome Partitioning​​  


 

30.8%

Medium

 

 。

125


​Valid Palindrome​​  


 

25.3%

Easy

 

 。 

9


​Palindrome Number​​  


 

34.1%

Easy


 

先看的这道题目:

214

​Shortest Palindrome​​  

 

23.0%

Hard

我的解法在:

/Users/baidu/Documents/Data/Interview/leetcode/shortest-palindrome

太好了,实在太好了。要好好看。

 

然后看的这道题目:

409


​Longest Palindrome​​  


 

44.5%

Easy

 

 

解法在:​​javascript:void(0)​​  原题太简单了,如果不发散想想其他题目,没什么好看的。

 

 

131

​Palindrome Partitioning​​  

 

30.8%

Medium

也看了。我的方法是递归。里面有提到一种dp+dfs的解法。

 

132

​Palindrome Partitioning II​​  

 

23.4%

Hard

这一道题目,难。

看了我自己的解法,是从中间发散的,还是很好的。

另外,我觉得借鉴上一道题目的思路,把每一个i.j是否palin的情况都列出来,然后dfs来得出最后一个元素所在的最少的分割,应该也能做出来。

 

 

266

​Palindrome Permutation​​  

 

55.1%

Easy

locked的项目,较简单,思路比较清晰。

 

267

​Palindrome Permutation II​​  

 

31.0%

Medium

也是locked。解法里面先用map统计,然后用递归来减除并处理。也可以不用递归,那就要用栈。

 

9

​Palindrome Number​​  

 

34.1%

Easy

解法真的蛮巧妙的。开始我就没想到。

 

336

​Palindrome Pairs​​  

 

24.7%

Hard

难怪这是Hard难度的。开始的时候,以为循环遍历就可以了。其实不行的,会超时,还是要用map来查。

 

125

​Valid Palindrome​​  

 

25.3%

Easy

用到了stl里面的transform

 

234

​Palindrome Linked List​​  

 

31.6%

Easy

题目还是蛮好的。我也想起来了。

 

 

再想到其他回文的题目,再补充。