Skip to content

Commit

Permalink
68: Submit
Browse files Browse the repository at this point in the history
  • Loading branch information
sankichi92 committed Dec 31, 2023
1 parent 8a45f18 commit 49da487
Showing 1 changed file with 22 additions and 5 deletions.
27 changes: 22 additions & 5 deletions 68-single-number/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,14 +1,31 @@
pub fn add(left: usize, right: usize) -> usize {
left + right
use std::collections::HashSet;

pub fn single_number(nums: Vec<i32>) -> i32 {
let mut appeared_nums = HashSet::new();
for num in nums {
if !appeared_nums.remove(&num) {
appeared_nums.insert(num);
}
}
*appeared_nums.iter().next().unwrap()
}

#[cfg(test)]
mod tests {
use super::*;

#[test]
fn it_works() {
let result = add(2, 2);
assert_eq!(result, 4);
fn case1() {
assert_eq!(single_number(vec![2, 2, 1]), 1)
}

#[test]
fn case2() {
assert_eq!(single_number(vec![4, 1, 2, 1, 2]), 4)
}

#[test]
fn case3() {
assert_eq!(single_number(vec![1]), 1)
}
}

0 comments on commit 49da487

Please sign in to comment.