INDAPlus21 / INDAPlus21/boleni-task-2
Pass
- Dominant language
- Rust
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
**Very well done Jonatan!**
> `// There are problably built-in features for abs value but eh-`
- Yes!
_Your code_:
```rust
let bytes_read = io::stdin().read_line(&mut input).expect("There was something wrong with the input.");
if bytes_read == 0 {break;}
let numbers = input.trim().split(" ").collect::>();
let n1 = numbers[0].parse::().expect("Please input a valid number.");
let n2 = numbers[1].parse::().expect("Please input a valid number.");
println!("{}",
if n1-n2 > 0 {
n1-n2
} else {
(n1-n2)*-1
});
```
_Alternative_:
```rust
match io::stdin().read_line(&mut input).expect("There was something wrong with the input.") {
0 => break,
_ => {
let numbers: Vec = input
.trim()
.split_whitespace() // Optimised version of `.split(" ")`
.map(|_number| _number.parse().unwrap())
.collect();
println!("{}", (numbers[0] - numbers[1]).abs());
}
}
```
Also, lets shorten your other code by using functional features.
_Your code_:
```rust
let numbers: Vec<&str> = numbers.trim().split(" ").collect();
let mut sorted_numbers = Vec::new();
for num in numbers {
sorted_numbers.push(num.trim().parse::().expect("Invalid number!"));
}
sorted_numbers.sort();
let mut sum: u32 = 0;
if n % 2 == 0 {
for i in n/2..n {
sum += sorted_numbers[i as usize];
}
} else {
for i in (n+1)/2-1..n {
sum += sorted_numbers[i as usize];
}
}
println!("{}", sum)
```
_Shorter code_:
```rust
let n: usize = n.trim().parse().expect("Invalid value n");
// ...
let mut numbers: Vec = numbers
.trim()
.split_whitespace()
.map(|_number| _number.parse().unwrap())
.collect();
numbers.sort();
let mut sum: u32 = 0;
for _i in (
match n % 2 {
0 => n/2,
1 => (n+1)/2-1 // Is this not equal to `n/2`?
}
)..n {
sum += sorted_numbers[i];
}
println!("{}", sum)
```
_Even shorter code_:
```rust
let n: usize = n.trim().parse().expect("Invalid value n");
// ...
let mut numbers: Vec = numbers
.trim()
.split_whitespace()
.map(|_number| _number.parse().unwrap())
.collect();
numbers.sort();
println!("{}", numbers[n/2..].iter().sum::())
```
Contributor guide
No contributing guide indexed for this repository
Research direction
The issue contains Rust code-review feedback but names no repository file, test, or entry point. No concrete change or completion condition is specified, so clarify the intended task and identify the relevant code and validation steps before starting.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- developer-experience
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100