[洛谷P2606] ZJOI2010 排列計數
阿新 • • 發佈:2020-07-26
編寫一個函式來查詢字串陣列中的最長公共字首。
如果不存在公共字首,返回空字串""
。
輸入: ["flower","flow","flight"] 輸出: "fl"
利用python的Zip函式,zip()函式接受一系列可迭代物件作為引數,將不同物件中相對應的元素打包成一個元組(tuple),返回由這些元組組成的list列表,如果傳入的引數的長度不等,則返回的list列表的長度和傳入引數中最短物件的長度相同。舉例說明:
x = [1,2,3,4,5] y = ['a','b','c','d'] xy = zip(x,y) print xy for a,b in zip(x,y):print a print b
輸出:
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')] 1 a 2 b 3 c 4 d
zip(*iterable)使用說明:
ll = ["flower", "flow", "flqwe"] zip(*ll) 返回的結果是什麼呢?
1、*xx
在呼叫函式的時候是解包作用,因此:*ll ==> "flower", "flow", "flqwe"
2、zip(*ll) ==> zip("flower", "flow", "flqwe")這跟zip(a, b)沒什麼兩樣
則本題的解法可以用zip函式結合set實現:
class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: s='' for i in zip(*strs): if len(set(i))==1: s=s+i[0] else: break return s