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