INDAPlus21 / INDAPlus21/antonul-task-2
Pass
Aperta
Nessuno ha ancora preso questa issue.
- Lingua principale
- Rust
- Stelle
- 0
- Fork
- 0
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
Very well done Anton!
Tips och tricks följer:
Your code:
// ...
let mut sum = 0;
match numbers.len() {
// edge cases, logic and print
0 => {
sum = 0;
}
_ => {
numbers.sort();
let half_of_numbers = numbers.len()/2;
for number in half_of_numbers..numbers.len() {
sum += numbers[number];
}
}
}
println!("{}", sum);
Condensed vesion:
// ...
println!("{}",
match numbers.len() {
0 => 0,
_len => {
numbers.sort();
numbers[_len/2.._len].iter().sum()
}
}
);
Your code:
// ...
for row in 1..=rows {
let mut row_output: String = String::default();
for col in 1..=columns {
let top_dist = row;
let bot_dist = rows - row + 1;
let left_dist = col;
let right_dist = columns - col + 1;
//gets the smallest value of ..._dist variables
let min_distance = top_dist.min(bot_dist).min(left_dist).min(right_dist);
//adds the distance if it's under 10 to output and . if it's not
if min_distance < 10 {
row_output.push_str(&min_distance.to_string());
}
else {
row_output.push('.');
}
}
println!("{}", row_output);
}
Optimised version:
//...
for _row in 1..=rows {
// Pre-allocate memory.
let mut row = String::with_capacity(5);
for _col in 1..=columns {
let top_dist = _row;
let bottom_dist = rows - _row + 1;
let left_dist = _col;
let right_dist = columns - _col + 1;
row.push(
match top_dist.min(bottom_dist).min(left_dist).min(right_dist) {
_min_dist if _min_dist < 10 =>
// Quicker to convert directly to static sized type, than to dynamic string to static sized string.
std::char::from_digit(_min_dist, 10).unwrap(),
_ => '.'
}
);
}
println!("{}", row);
}
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Non viene indicato alcun file, test o punto di ingresso. L’issue è un feedback sul codice Rust, non una modifica richiesta, quindi conferma prima di iniziare se è previsto un aggiornamento della documentazione o del codice; non è fornito alcun criterio di completamento.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- rust
- Ambito
- documentation
- Tipo di issue
- Documentazione
- Difficoltà
- 1/5
- Tempo stimato
- Meno di un'ora
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 10/100