14. 最长公共前缀
1. 题目
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
1 | 输入:strs = ["flower","flow","flight"] |
示例 2:
1 | 输入:strs = ["dog","racecar","car"] |
提示:
1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i]
仅由小写英文字母组成
2. 思路
- 按下标位依次读取字符串数组中的每个字符串对应下标的字符进行比对,初始化
targetIndex
作为对应下标,targetCh
作为对应下标字符 - 由题意已知每个字符串的最大长度为200,因此可开启循环遍历数组中每一个的字符串的对应下标值是否一致,并递增
targetIndex
- 在当遍历比对完字符串数组中的每一个字符串对应
targetIndex
都一致时,说明该位字符为统一前缀,因此追加至结果字符串变量result
中,同时自增targetIndex
变量 - 这里需要注意的是当在每次遍历到数组第一个字符串时,需要重置
targetCh
字符变量 - 同时需要注意的是,在循环遍历的过程当中,需要注意字符下标不要越界
3. 代码
1 | class Solution { |
4. 复杂度
- 时间复杂度:
O(n)
- 空间复杂度:
O(1)