You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么我编写的end_other字符串尾缀判断函数仅部分用例生效?

问题原因

你的代码核心错误在于min(a, b)、max(a, b)的取值逻辑不符合预期:Python中字符串的默认大小比较是按字典序逐位比对ASCII码值,不是按照字符串的长度比较。

以运行失败的end_other('Hiabc', 'abc')为例:

  • 首字符H的ASCII码为72,a的ASCII码为97,因此min('Hiabc', 'abc')实际返回的是长度更长的'Hiabc',max返回的是长度更短的'abc'
  • 后续执行big[-len(small):]即'abc'[-5:],Python字符串切片下标越界时会返回完整字符串,得到结果'abc'
  • 最终比对'Hiabc'.lower()和'abc',结果为False,和预期不符。
修复方案

只需要修改min、max的比对规则,指定按字符串长度取值即可,优化后代码如下:

def end_other(a, b):
    small = min(a, b, key=len)
    big = max(a, b, key=len)
    return small.lower() == big[-len(small):].lower()

内容的提问来源于stack exchange,提问作者user16712533

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 18:39:04