找出一組字符串中最長的公共前綴。
注意點:
字符串長度不一樣 考慮字符列表為空的情況例子:
輸入: str=[“hello”, “heabc”, “hewww”]
輸出: “he”
如果列表長度大於一,不妨把第一字符串當做基准,用一個指針來表示在此之前的字符是滿足題目要求的。遍歷每一個字符串,用指針對應的字符與基准中相應的字符比較,如不同則前面的子字符串就是所要求的結果;如果全都相同,則指針右移。還有一種情況要考慮,後面的字符串可能沒有第一個字符串長,如果指針超過了最短的字符串也應該終止。
class Solution(object):
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
if not strs:
return ""
longest = strs[0]
for i in range(len(strs[0])):
for str in strs:
if len(str) <= i or strs[0][i] != str[i]:
return strs[0][:i]
return strs[0]
if __name__ == "__main__":
assert Solution().longestCommonPrefix(["hello", "heabc", "hell"]) == "he"