Skip to content

Commit 0e9aa20

Browse files
committed
Create 1603-design-parking-system.rs
1 parent f53a09d commit 0e9aa20

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

1603-design-parking-system.rs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
struct ParkingSystem {
2+
current: Vec<i32>,
3+
max: Vec<i32>
4+
}
5+
6+
impl ParkingSystem {
7+
fn new(big: i32, medium: i32, small: i32) -> Self {
8+
ParkingSystem {
9+
max: vec!(big, medium, small),
10+
current: vec![0; 3]
11+
}
12+
}
13+
14+
fn add_car(&mut self, car_type: i32) -> bool {
15+
let car_type = car_type as usize - 1;
16+
if self.current.get(car_type).unwrap() + 1 > *self.max.get(car_type).unwrap() {
17+
false
18+
} else {
19+
*self.current.get_mut(car_type).unwrap() += 1;
20+
true
21+
}
22+
}
23+
}
24+
25+
fn main() {
26+
let mut obj = ParkingSystem::new(1, 1, 0);
27+
println!("{:?}", obj.add_car(1));
28+
println!("{:?}", obj.add_car(2));
29+
println!("{:?}", obj.add_car(3));
30+
println!("{:?}", obj.add_car(1));
31+
}

0 commit comments

Comments
 (0)