48 lines
		
	
	
		
			858 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			858 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| /**
 | |
|  * [383] Ransom Note
 | |
|  */
 | |
| pub struct Solution {}
 | |
| 
 | |
| // submission codes start here
 | |
| use std::collections::HashMap;
 | |
| 
 | |
| impl Solution {
 | |
|     pub fn can_construct(ransom_note: String, magazine: String) -> bool {
 | |
|         let mut map = HashMap::new();
 | |
| 
 | |
|         for c in magazine.chars() {
 | |
|             let entry  = map.entry(c).or_insert(0);
 | |
| 
 | |
|             *entry += 1;
 | |
|         }
 | |
| 
 | |
|         for c in ransom_note.chars() {
 | |
|             match map.get_mut(&c) {
 | |
|                 Some(entry) => {
 | |
|                     if *entry == 0 {
 | |
|                         return false;
 | |
|                     }
 | |
| 
 | |
|                     *entry -= 1;
 | |
|                 },
 | |
|                 None => {
 | |
|                     return false;
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
| 
 | |
|         true
 | |
|     }
 | |
| }
 | |
| 
 | |
| // submission codes end
 | |
| 
 | |
| #[cfg(test)]
 | |
| mod tests {
 | |
|     use super::*;
 | |
| 
 | |
|     #[test]
 | |
|     fn test_383() {}
 | |
| }
 |