程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> LeetCode Longest Common Prefix

LeetCode Longest Common Prefix

編輯:C++入門知識

LeetCode Longest Common Prefix


LeetCode解題之Longest Common Prefix


原題

找出一組字符串中最長的公共前綴。

注意點:

字符串長度不一樣 考慮字符列表為空的情況

例子:

輸入: str=[“hello”, “heabc”, “hewww”]
輸出: “he”

解題思路

如果列表長度大於一,不妨把第一字符串當做基准,用一個指針來表示在此之前的字符是滿足題目要求的。遍歷每一個字符串,用指針對應的字符與基准中相應的字符比較,如不同則前面的子字符串就是所要求的結果;如果全都相同,則指針右移。還有一種情況要考慮,後面的字符串可能沒有第一個字符串長,如果指針超過了最短的字符串也應該終止。

AC源碼

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"

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved