python对字符串使用min和max

这篇博客分享了一种巧妙的Python解法,用于寻找一组字符串的最长公共前缀。通过比较min和max字符串的ASCII码,可以在逐位比较中快速找到公共部分。这种方法适用于解决算法题,例如在面试或日常编程练习中。
摘要由CSDN通过智能技术生成

今天日常刷题,看到了一个最长公共前缀比较高级的解法。
题目如下:

在评论区看到一个比较聪明的解法:

class solution():
	def st(strs):
		if not strs:
			return ""
		str1 = min(strs)
		str2 = max(strs)
		for i in range(len(str1)):
			if str1[i] != str2[i]:
				return str1[:i]
		return str1

这里对字符串进行比较,使用min和max,比较的不是字符串的长度,是按照其ASCII码进行逐位比较,比如“abc”和“abb”,明显abc要比abb大,需要注意的一点是,如果比较的是“abc”和“abbbbbbb”,也是abc比较大,因为比较到第三位的时候,发现c比b大,此时比较已经结束。

题目中的例子“flower”,“flow”,“flight”,这三个里面通过逐位比较,当比较到第三位时,第三位的字母分别是o、o、i,则明显i最小,因此得到的min(strs)= ‘flight’,之后通过比较发现最大的为flower。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值