Skip to content

10-字符串 ​

字符串是通常是配合其他的算法/数据结构来出题的,因此它的题目的很多的。

题目 ​

LC14. 最长公共前缀 ​

这题目有两个思路:

  • 第一个是两两字符串依次比较。
  • 第二个是先比较所有字符串的第一个,然后再比较第二个,依次类推

两两比较 ​

这个是可以使用分治的思想,采用递归的思路来写

统一比较 ​

所有字符串从第一个字符开始比较

LC5. 最长回文子串 ​

采用中心扩展法:

  1. 先固定一个位置 i,利用回文串的特性依次向两边遍历
  2. 当然也要考虑到偶数的情况,那么就把右边的位置固定到 i + 1 上,然后依次向两边遍历

在偶数个的情况下,右边的位置是固定在 i + 1 的位置,那能不能变为左边的位置固定在 i - 1 上呢?

其实也是可以的,不过需要考虑边界的情况

LC67. 二进制求和 ​

这个和之前 链表的两数相加 一样,不过这里是正序的,因此需要考虑翻转的情况,或者使用一个指针指向最后的索引,

LC43. 字符串相乘 ​

这个题目有两个解法:

  1. 利用小学学过的列竖式运算,计算出所有的相乘的和,然后把这些和求出来就可以。(比较复杂)
  2. 通过无进位相乘,算出没有进位的结果,最后把计算它们的进位就可以了(写法比较简单)

列竖式运算 ​

无进位相乘 ​