起因, 目的:
计划: 近期先做10个简单的题目,找找感觉, 然后开始做中等的。
题目来源: 14. 最长公共前缀
参考题解, 第二个写法,纵向扫描
代码 1
def solu(strs):
# 方法二:纵向扫描
# strs = ["flower", "flow", "flight"]
if not strs:
return ""
length = len(strs[0]) # 第一个词的长度、比如 flower 的长度是 6
count = len(strs) # 数组的总长度。
for i in range(length):
# 开始位置是: 第一个词的第一个字母。
c = strs[0][i]
# 检查不满足的情况。 如果不满足的话, 直接返回结果。
# 不满足的条件是: 某个词的总长度很小, 或是,字母不相等
if any( i == len(strs[j]) or strs[j][i] !=c for j in range(1, count) ):
return strs[0][:i]
return strs[0]
print(solu( haystack = "sadbutsad", needle = "sad" ))