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

如何按单词反转顺序对单词列表进行排序

按单词反转结果排序的实现方案

核心逻辑

排序时不直接对原单词做字典序比较,而是将每个单词的字符完全反转后生成排序键,按照排序键的字典序升序排列原单词即可。
你可以先对照反转结果验证排序逻辑的正确性:

  • banana 反转后为 ananab
  • orange 反转后为 egnaro
  • apple 反转后为 elppa
  • healthy 反转后为 yhtlaeh
    上述反转字符串的字典序升序正好对应给出的正确排序结果。

注意:反转操作仅用于生成排序比较的依据,最终输出的列表元素仍然是原始单词,不需要输出反转后的字符串。

不同语言的代码实现

Python

利用内置sorted函数的key参数,直接传入字符串反转的逻辑作为排序键即可,实现最简洁:

words = ["apple", "banana", "orange", "healthy"]
sorted_words = sorted(words, key=lambda word: word[::-1])

print(sorted_words)
# 运行输出:['banana', 'orange', 'apple', 'healthy']

JavaScript

调用数组的sort方法时,自定义比较函数,对两个待比较的单词分别做反转后再做字典序对比:

const words = ["apple", "banana", "orange", "healthy"];
const sortedWords = words.sort((a, b) => {
  const reversedA = a.split('').reverse().join('');
  const reversedB = b.split('').reverse().join('');
  return reversedA.localeCompare(reversedB);
});

console.log(sortedWords);
// 运行输出:['banana', 'orange', 'apple', 'healthy']

Java

借助Stream流的排序API,通过Comparator指定反转字符串为比较键:

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class ReverseSortDemo {
    public static void main(String[] args) {
        List<String> words = Arrays.asList("apple", "banana", "orange", "healthy");
        List<String> sortedWords = words.stream()
                .sorted((a, b) -> new StringBuilder(a).reverse()
                        .toString()
                        .compareTo(new StringBuilder(b).reverse().toString()))
                .collect(Collectors.toList());
        
        System.out.println(sortedWords);
        // 运行输出:[banana, orange, apple, healthy]
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 22:27:35