Description
- Longest Common Prefix Easy
Write a function to find the longest common prefix string amongst an array of strings.
If there is no common prefix, return an empty string “”.
Example
- Example 1:
Input: ["flower","flow","flight"]
Output: "fl"
- Example 2:
Input: ["dog","racecar","car"]
Output: ""
Explanation: There is no common prefix among the input strings.
- Note:
All given inputs are in lowercase letters a-z.
题意
求数组字符串中的最长公共前缀LSP,没有则返回""
解题思路1
从数组第一个字符串开始,扫描该字符串,依次检查其他字符串的同一位置是否是一样的字符,当遇到不一样时则返回当前得到的前缀。
code
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs:
return ""
res = ""
for i in range(len(strs[0])):
for j in range(1, len(strs)):
if i>=len(strs[j]) or strs[j][i]!=strs[0][i]:
return res
res += strs[0][i]
return res
解题思路2
跟思路1差不多,只不过先将字符串数组排序(这里排序应该是按字符串大小来比较的,先比较首字母,首字母相同则继续往后比较,比如’ab’,‘ac’是’ac’大于’ab’,不同则首字母大的字符串大,比如’ab’,‘ba’,就是’ba’大于’ab’),然后直接比较第一个和最后一个的字符串即可。
code
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs:
return ""
strs.sort()
print(strs)
res = ""
for i in range(len(strs[0])):
if i>=len(strs[-1]) or strs[-1][i]!=strs[0][i]:
return res
res += strs[0][i]
return res
今天雨天