Largest int from concatenated ints: Difference between revisions
Content added Content deleted
(Add Quackery) |
(→{{header|Kotlin}}: Simpler comparator, reverse the comparator (not the list), map in the join, format output.) |
||
Line 1,176: | Line 1,176: | ||
=={{header|Kotlin}}== |
=={{header|Kotlin}}== |
||
{{trans|C#}} |
{{trans|C#}} |
||
⚫ | |||
{{works with|Kotlin|1.0b4}} |
|||
⚫ | |||
fun main(args: Array<String>) { |
fun main(args: Array<String>) { |
||
val comparator = Comparator<Int> { x, y -> |
val comparator = Comparator<Int> { x, y -> "$x$y".compareTo("$y$x") } |
||
val xy = (x.toString() + y).toInt() |
|||
val yx = (y.toString() + x).toInt() |
|||
xy.compareTo(yx) |
|||
⚫ | |||
fun findLargestSequence(array: IntArray): String { |
fun findLargestSequence(array: IntArray): String { |
||
return array.sortedWith(comparator |
return array.sortedWith(comparator.reversed()).joinToString("") { it.toString() } |
||
} |
} |
||
for (array in listOf( |
|||
intArrayOf(1, 34, 3, 98, 9, 76, 45, 4), |
|||
println(findLargestSequence(source1)) |
|||
⚫ | |||
)) { |
|||
⚫ | |||
println(findLargestSequence( |
println("%s -> %s".format(array.contentToString(), findLargestSequence(array))) |
||
⚫ | |||
}</lang> |
}</lang> |
||
{{Out}} |
{{Out}} |
||
<pre> |
|||
998764543431 |
|||
[1, 34, 3, 98, 9, 76, 45, 4] -> 998764543431 |
|||
6054854654 |
|||
[54, 546, 548, 60] -> 6054854654 |
|||
</pre> |
|||
=={{header|Lua}}== |
=={{header|Lua}}== |