argmax 是否适用于字符串数组?

Is argmax working properly for an array of Strings?

我正在使用函数 Argmax 获取字符串数组中最大大小的字符串,当字符串包含单个字符的重复时,结果会变得很奇怪。

例如:

x = ["ABC", "AAAA"]
argmax(x) # 1
# The return of argmax is 1, is that correct ?

x = ["ABC", "AAAABBBBCCCCDDDD"]
argmax(x) # = 1

x = ["ABC", "AAAABBBBCCCCDDDD", "ABCD"]
argmax(x) # = 3

这里的字符串是按字典顺序比较的,而不是按长度。

因此 "ABC" 被认为大于 "AAAA",因此数组 ["ABC", "AAAA"] 中的最大元素确实位于索引 1。

如果您的目标是按长度比较字符串,您可以将 length 函数应用于数组中的每个字符串,然后使用 argmax。例如:

julia> x = ["ABC", "AAAABBBBCCCCDDDD", "ABCD"]
julia> argmax(length.(x))
2