gpt4 book ai didi

perl - Perl中按长度排序

转载 作者:行者123 更新时间:2023-12-04 05:23:23 25 4
gpt4 key购买 nike

任何人都知道如何按长度对数字进行排序?

例如:(11,111,122,12,2,13,21,15,211,22,213,2004)

我希望排序的数组是:

11
12
13
15
111
122
2
21
22
213
2004年

最佳答案

所需的输出似乎表明您不只是想按位数排序,而是首先按第一个数字然后按长度排序。

您显示的所需输出省略了 211 ,所以我只是根据我的理解把它放在它所属的地方。

#!/usr/bin/env perl

use strict;
use warnings;

use Test::More;

my @source = (11, 111, 122, 12, 2, 13, 21, 15, 211, 22, 213, 2004);
my @desired = (11, 12, 13, 15, 111, 122, 2, 21, 22, 211, 213, 2004);

my @sorted =sort {
substr($a, 0, 1) <=> substr($b, 0, 1) ||
length($a) <=> length($b) ||
$a <=> $b # thanks @ikegami
} @source;

is_deeply(\@sorted, \@desired, 'Sorted and desired are the same');

关于perl - Perl中按长度排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13372784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com