背景:给定一个可迭代对象,或者是多个可迭代对象,取出公共的前缀
献上代码:
def Solution(list):
str = ''
for i in zip(*list):
if len(set(i))==1:
str += i[0]
else:
return str
return str
if __name__ == '__main__':
list = ["flower","flow","flight"]
list1 = ["flower","fow","flight"]
list2 = ["klower","fow","flight"]
str = Solution(list)
print(str)
执行结果是:
实现逻辑:
1、使用zip(*list)函数,取出迭代对象中的可迭代对象的同一位置的元素组成元祖。
2、将得到的元祖去重,使用set()函数,如果得到的元组长度为1,说明该元祖中的元素为公共前缀,将其添加到定义好的空字符串上,以此类推,后续得到元组长度为1的也添加到该字符串中
3、将得到最终的公共前缀字符串进行返回。
如果想获取好多个可迭代对象的公共前缀。可以将代码的入参进行增加。
在红框框的地方进行更改,得到的是空,因为没有公共前缀。