Leetcode_14【最长公共前缀】
文章目录:
- 题目
- 脚本一及注释
- 脚本一未加注释
- 脚本一逻辑
题目:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
脚本一及注释:【用时:28ms】
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str: #题目定义的输入输出格式
num1 = len(strs) #获取输入列表的元素个数
target = "" #定义一个空变量,用于存储公共前缀
flag = "" #定义一个标志位
i = 0 #定义一个数值为0的变量,用于变量列表的元素,会随着循环自增
try: #使用try...except语句来处理输入空列表
curl = strs[0] #若输入不是空列表则取列表中的第一个元素并赋值给curl变量
except IndexError: #若输入为空列表,则返回空值
return("")
while True: #使用死循环进入循环判断
for j in range(num1): #使用列表元素个数组成的数列对列表元素进行遍历
try: #此处使用try...except用来处理某些元素的字符个数过少,元素索引值超出范围的报错
if curl[i] == strs[j][i]: #如果列表中的每个元素的第i个字符是一样的,则标志符为true
flag = ‘true‘
else: #若不一样,则标识符为xx,且退出循环
flag = ‘xx‘
break
except IndexError: #若超出元素索引值范围
flag = ‘xx‘ #标志位为xx
break #退出循环
if flag == ‘true‘: #退出for循环后,对标志位进行判断来决定下一步的处理
target += curl[i] #若标志位为true则把字符增加到记录公共前缀变量中
elif flag == ‘xx‘:
break #若标志位为xx,则退出循环
i += 1 #每次for循环结束,i均自增1
return(target) #返回记录公共前缀的变量#coding:gbk
strs = ["abca","abc"]
num1 = len(strs)
target = ""
flag = ""
i = 0
if strs[0]:
curl = strs[0]
else:
print("")
while True:
for j in range(num1):
try:
if curl[i] == strs[j][i]:
flag = ‘true‘
else:
flag = ‘xx‘
break
except IndexError:
flag = ‘xx‘
break
if flag == ‘true‘:
target += curl[i]
elif flag == ‘xx‘:
break
i += 1
print(target)个人环境测试脚本
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
num1 = len(strs)
target = ""
flag = ""
i = 0
try:
curl = strs[0]
except IndexError:
return("")
while True:
for j in range(num1):
try:
if curl[i] == strs[j][i]:
flag = ‘true‘
else:
flag = ‘xx‘
break
except IndexError:
flag = ‘xx‘
break
if flag == ‘true‘:
target += curl[i]
elif flag == ‘xx‘:
break
i += 1
return(target)未加注释脚本
脚本一逻辑:
- 公共前缀必定每一个列表元素均拥有,则先获取一个出来作为所有列表元素的对比目标
- try...except语句对异常情况的判断处理
- 使用i自增和range()来遍历每个元素中的每个字符
相关推荐
曾是土木人 2020-10-31
yegen00 2020-10-21
soralaro 2020-10-11
katanaFlower 2020-09-18
wytzsjzly 2020-08-17
88407710 2020-08-17
ChinaJoeEE 2020-08-16
CyborgLin 2020-08-15
Blueberry 2020-08-15
PinkBean 2020-08-11
katanaFlower 2020-08-03
hunningtu 2020-07-30
阿债的方寸天地 2020-06-28
pingyan 2020-06-25
wytzsjzly 2020-06-25
阳光岛主 2020-06-25
阿债的方寸天地 2020-06-16