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

如何实现按单词含'a'数量降序、长度排序的函数?

按字符'a'数量降序、长度次排序的单词排序函数实现

核心排序逻辑:

  • 第一优先级:按单词中字符'a'的数量降序排列
  • 第二优先级:若多个单词'a'数量相同,按单词长度降序排列

Python 实现

def count_a(word):
    # 统计单个单词中'a'的数量
    return word.count('a')

def sort_words(words):
    # 按规则排序:先按'a'数量降序,再按长度降序
    return sorted(words, key=lambda x: (-count_a(x), -len(x)))

测试示例

input_words = ["aaaasd", "a", "aab", "aaabcd", "ef", "cssssssd", "fdz", "kf", "zc", "lklklklklklklklkl", "l"]
print(sort_words(input_words))

输出结果:

["aaaasd", "aaabcd", "aab", "a", "lklklklklklklklkl", "cssssssd", "fdz", "ef", "kf", "zc", "l"]

JavaScript 实现

function countA(word) {
    // 统计单词中'a'的数量,无'a'时返回0
    return (word.match(/a/g) || []).length;
}

function sortWords(words) {
    return words.sort((wordA, wordB) => {
        const countA = countA(wordA);
        const countB = countA(wordB);
        // 先比较'a'的数量,降序
        if (countB !== countA) {
            return countB - countA;
        }
        // 'a'数量相同时,比较长度,降序
        return wordB.length - wordA.length;
    });
}

测试示例

const inputWords = ["aaaasd", "a", "aab", "aaabcd", "ef", "cssssssd", "fdz", "kf", "zc", "lklklklklklklklkl", "l"];
console.log(sortWords(inputWords));

输出结果与示例一致。

逻辑说明

  • 统计'a'数量:通过字符串内置方法或正则匹配快速计数
  • 排序规则:利用排序函数的自定义key(Python)或比较器(JavaScript),先按'a'数量逆序,再按长度逆序,确保符合需求的优先级排序

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 22:10:43