Implemented p22, TODO - implement p23

This commit is contained in:
Egor 2024-05-03 12:06:51 +03:00
parent 5c73aefbc4
commit e57953fd8c
3 changed files with 39 additions and 3 deletions

View file

@ -22,3 +22,4 @@ pub mod p19_remove_nth_node_from_end_of_list;
pub mod p20_valid_parentheses;
pub mod p21_merge_two_sorted_lists;
pub mod p22_generate_parentheses;
pub mod p23_merge_k_sorted_lists;

View file

@ -1,9 +1,17 @@
pub struct Solution;
impl Solution {
// TODO: implement
pub fn generate_parenthesis(n: i32) -> Vec<String> {
return vec![];
let mut operations = vec![(0, 0, "".to_string())];
let mut result = vec![];
while let Some((left, right, s)) = operations.pop() {
if s.len() == n as usize * 2 {
result.push(s);
continue;
}
if left < n { operations.push((left + 1, right, s.clone() + "(")); }
if right < left { operations.push((left, right + 1, s + ")")); }
}
return result;
}
}

View file

@ -0,0 +1,27 @@
use super::linked_list::ListNode;
pub struct Solution;
impl Solution {
// TODO: implement
pub fn merge_k_lists(lists: Vec<Option<Box<ListNode>>>) -> Option<Box<ListNode>> {
return None;
}
}
#[test]
fn test1() {
assert_eq!(Solution::merge_k_lists(vec![
list![1,4,5], list![1,3,4], list![2,6]
]), list![1,1,2,3,4,4,5,6]);
}
#[test]
fn test2() {
assert_eq!(Solution::merge_k_lists(vec![]), list![]);
}
#[test]
fn test3() {
assert_eq!(Solution::merge_k_lists(vec![list![]]), list![]);
}