Compare commits
4 Commits
0e2e9c2a34
...
7b032a1ef4
| Author | SHA1 | Date | |
|---|---|---|---|
| 7b032a1ef4 | |||
| 0c9bcca1ae | |||
| 1ab98c2047 | |||
| 2f401b763a |
62
src/Go/002.go
Normal file
62
src/Go/002.go
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"sort"
|
||||||
|
)
|
||||||
|
|
||||||
|
func maxIntSlice(lst []int) int {
|
||||||
|
m := lst[0]
|
||||||
|
for _, v := range lst[1:] {
|
||||||
|
if v > m {
|
||||||
|
m = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return m
|
||||||
|
}
|
||||||
|
|
||||||
|
func order_by_max_i32(lst [][]int) [][]int {
|
||||||
|
result := append([][]int(nil), lst...) // copy outer slice (like Python sorted)
|
||||||
|
|
||||||
|
sort.SliceStable(result, func(i int, j int) bool {
|
||||||
|
return maxIntSlice(result[i]) < maxIntSlice(result[j])
|
||||||
|
})
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
func maxRune(s string) rune {
|
||||||
|
var m rune
|
||||||
|
|
||||||
|
for _, r := range s {
|
||||||
|
if r > m {
|
||||||
|
m = r
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return m
|
||||||
|
}
|
||||||
|
|
||||||
|
func order_by_max_str(lst []string) []string {
|
||||||
|
result := append([]string(nil), lst...) // copy (like Python sorted)
|
||||||
|
|
||||||
|
sort.SliceStable(result, func(i int, j int) bool {
|
||||||
|
return maxRune(result[i]) < maxRune(result[j])
|
||||||
|
})
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
check := [][]int{{3, 2}, {6, 7, 5}, {1, 4}}
|
||||||
|
fmt.Println(order_by_max_i32(check)) // [[3,2],[1,4],[6,7,5]]
|
||||||
|
|
||||||
|
check = [][]int{{1}, {0, 1}}
|
||||||
|
fmt.Println(order_by_max_i32(check)) // [[1],[0,1]]
|
||||||
|
|
||||||
|
check = [][]int{{0, 1}, {1}}
|
||||||
|
fmt.Println(order_by_max_i32(check)) // [[0,1],[1]]
|
||||||
|
|
||||||
|
checkStr := []string{"este", "es", "el", "primero"}
|
||||||
|
fmt.Println(order_by_max_str(checkStr)) // ["el","primero","es","este"]
|
||||||
|
}
|
||||||
16
src/Julia/002.jl
Normal file
16
src/Julia/002.jl
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
function order_by_max(lst)
|
||||||
|
return sort(lst, by=maximum)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
check = [[3,2],[6,7,5],[1,4]]
|
||||||
|
println(order_by_max(check)) # [[3,2],[1,4],[6,7,5]]
|
||||||
|
|
||||||
|
check = [[1],[0,1]]
|
||||||
|
println(order_by_max(check)) # [[1],[0,1]]
|
||||||
|
|
||||||
|
check = [[0,1],[1]]
|
||||||
|
println(order_by_max(check)) # [[0,1],[1]]
|
||||||
|
|
||||||
|
check = ["este","es","el","primero"]
|
||||||
|
println(order_by_max(check)) # ["el","primero","es","este"]
|
||||||
15
src/Python/002.py
Normal file
15
src/Python/002.py
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
def order_by_max(lst: list) -> list:
|
||||||
|
return sorted(lst, key=max)
|
||||||
|
|
||||||
|
|
||||||
|
check = [[3,2],[6,7,5],[1,4]]
|
||||||
|
print(order_by_max(check)) # [[3,2],[1,4],[6,7,5]]
|
||||||
|
|
||||||
|
check = [[1],[0,1]]
|
||||||
|
print(order_by_max(check)) # [[1],[0,1]]
|
||||||
|
|
||||||
|
check = [[0,1],[1]]
|
||||||
|
print(order_by_max(check)) # [[0,1],[1]]
|
||||||
|
|
||||||
|
check = ["este","es","el","primero"]
|
||||||
|
print(order_by_max(check)) # ["el","primero","es","este"]
|
||||||
27
src/Rust/002.rs
Normal file
27
src/Rust/002.rs
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
fn order_by_max_i32(lst: &[Vec<i32>]) -> Vec<Vec<i32>> {
|
||||||
|
let mut sorted_lst = lst.to_vec();
|
||||||
|
sorted_lst.sort_by_key(|v| v.iter().max().cloned()); // stable sort by max element
|
||||||
|
|
||||||
|
return sorted_lst
|
||||||
|
}
|
||||||
|
|
||||||
|
fn order_by_max_str<'a>(lst: &[&'a str]) -> Vec<&'a str> {
|
||||||
|
let mut sorted_lst = lst.to_vec();
|
||||||
|
sorted_lst.sort_by_key(|s| s.chars().max()); // stable sort by max char
|
||||||
|
|
||||||
|
return sorted_lst
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let check = vec![vec![3,2], vec![6,7,5], vec![1,4]];
|
||||||
|
println!("{:?}", order_by_max_i32(&check)); // [[3,2],[1,4],[6,7,5]]
|
||||||
|
|
||||||
|
let check = vec![vec![1], vec![0,1]];
|
||||||
|
println!("{:?}", order_by_max_i32(&check)); // [[1],[0,1]]
|
||||||
|
|
||||||
|
let check = vec![vec![0,1], vec![1]];
|
||||||
|
println!("{:?}", order_by_max_i32(&check)); // [[0,1],[1]]
|
||||||
|
|
||||||
|
let check = vec!["este","es","el","primero"];
|
||||||
|
println!("{:?}", order_by_max_str(&check)); // ["el","primero","es","este"]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user