最長の共通のプレフィックス
説明
シンプル
最長共通接頭文字列の配列を見つけるために、関数を記述します。
共通の接頭辞がない場合は、空の文字列を返します「」
例
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀
問題解決
それ以外の場合は、インデックスの先頭に戻り、含まれている場合、文字列は、サブstrを含んでいるかどうかを検出し、機能を見つける-1
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs:
return ''
res = strs[0]
for i in range(1,len(strs)):
while strs[i].find(res) != 0: # 如果等于0,说明已找到公共前缀,否则使缩短判断的前缀,继续判断
res = res[0:len(res)-1]
return res
Pythonの最大値を用いて()と分()、Pythonの文字列の例のABB、ABA、ABAC、最大ABB、最小ABAの行ASCIIの値に応じて、比較することができます。だから、唯一の配列全体の共通のプレフィックスは、最大値と最小値の共通接頭辞を比較することである必要があります
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs: return ""
s1 = min(strs)
s2 = max(strs)
for i,x in enumerate(s1):
if x != s2[i]:
return s2[:i]
return s1