回文类题目总结

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

今天看到一道题目:

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

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

如果又忘了。。。这里面有top-down的解法介绍:http://blog.csdn.net/ly52352148/article/details/51447142 (代码没看,思想就是这样的)

要好好加油了!

https://leetcode.com/problemset/algorithms/

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

 。
409  
Longest Palindrome    44.5%  Easy
 。 336   24.7% Hard  
 。 267   31.0% Medium  
 。 266   55.1% Easy  
 。 234   31.6% Easy  
 。 214   23.0% Hard  
 。 132   23.4% Hard  
 。 131   30.8% Medium  
 。 125   25.3% Easy  
 。  9   34.1% Easy

先看的这道题目:

214 Shortest Palindrome     23.0% Hard

我的解法在:

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

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

然后看的这道题目:

409   44.5% Easy  

解法在:http://www.cnblogs.com/charlesblc/p/5929656.html  原题太简单了,如果不发散想想其他题目,没什么好看的。

  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

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

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

原文地址:https://www.cnblogs.com/charlesblc/p/6274615.html