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

如何修改循环逻辑实现最长公共后缀(Longest Common Suffix)求解

修改代码实现最长公共后缀

需求说明

实现函数 LongestCommonSuffix,输入单词数组,返回所有单词的最长公共后缀。例如调用 LongestCommonSuffix(['celebration', 'opinion', 'decision', 'revision']),需输出 "ion"。

原前缀代码分析

你提供的代码是求解最长公共前缀的实现,核心逻辑是从前往后逐个字符比对所有单词的对应位置。要改成求后缀,只需调整遍历方向,从每个单词的末尾开始比对。

修改后的代码

def LongestCommonSuffix(strs):
    res = ''
    # 处理空输入的边界情况
    if not strs:
        return res
    # 从倒数第1个字符开始,遍历到第1个字符
    for i in range(1, len(strs[0]) + 1):
        current_char = strs[0][-i]
        for s in strs:
            # 如果当前单词长度不足i,或者字符不匹配,返回当前结果
            if i > len(s) or s[-i] != current_char:
                return res
        # 把匹配的字符加到结果的前面,构建后缀
        res = current_char + res
    return res

代码修改点说明

  • 遍历方向调整:循环从1到len(strs[0]),通过负索引-i获取每个单词的倒数第i个字符
  • 匹配条件修改:判断当前单词长度是否小于i(即没有对应的倒数第i个字符),或者字符不匹配时,立即返回当前结果
  • 结果构建方式:因为是从后往前匹配字符,每次要把匹配的字符加到结果字符串的前面,才能得到正确的后缀顺序

测试示例

print(LongestCommonSuffix(['celebration', 'opinion', 'decision', 'revision']))
# 输出: ion

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 08:05:20