当前位置: 首页 > 后端技术 > Python

力扣14.最长公共前缀Python实现

时间:2023-03-26 18:17:38 Python

题目要求:思路:定义一个flag表示当前公共字符串的长度,将flag初始化为str[0]的长度来遍历数组,当前flag为(currentstringandflag),例如数组为["flower","flow","flight"],遍历到flower时,flag为6,遍历到flow时,最长公共前缀长度可能为4,即flow的长度,然后嵌套遍历,将str[0]和当前字符串的每个字符逐一比较,遍历范围为flag,比如flower和flow,只需要比较range(len("流”))就是这样。遍历直到有差异,将当前位数赋给flag,比如flower和flight,遍历直到下标为2,“o”和“i”不一样,所以赋2给flag。如果在遍历过程中flag变为0,那么直接返回一个空字符串即可。最后返回str0内核代码:flag=len(strs[0])foriinrange(len(strs)):flag=min(flag,len(strs[i]))ifflag==0:return""forjinrange(flag):ifstrs[0][j]!=strs[i][j]:flag=jbreakreturnstrs[0][:flag]完整代码:classSolution:deflongestCommonPrefix(self,strs:List[str])->str:如果不是strs:return""flag=len(strs[0])foriinrange(len(strs)):flag=min(flag,len(strs[i]))ifflag==0:return""forjinrange(flag):ifstrs[0][j]!=strs[i][j]:flag=jbreak返回strs[0][:flag]