From e51be1fb44c061554a59637fb4c864bcc00c53ba Mon Sep 17 00:00:00 2001 From: Timothy Kim Date: Mon, 24 Nov 2025 20:21:19 -0500 Subject: [PATCH] p4-wip --- src/main.rs | 67 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 42 insertions(+), 25 deletions(-) diff --git a/src/main.rs b/src/main.rs index 200c95a..c22780c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -46,41 +46,58 @@ fn two_sum(nums: Vec, target: i32) -> Vec { vec![] } - fn longest_palindrome(s: String) -> String { - let len = s.len(); - let mut m = vec![vec![false; len]; len]; + let mut max = 0; - /* - 0 1 2 3 4 - 0 1 - 1 2 - 2 3 - 3 4 - 4 5 - - 0 0 - 1 1 - 2 2 - 0 1 - 1 2 - 0 2 - - */ - - for x in 0..len { - let n = len - x; - for i in 0..n { + for i in 0..s.len() { + let mut begin = i as i32; + let mut end = i as i32; + // while we hit the edge on either side + while begin < 0 || end == s.len() as i32 { + } } - " ".parse::().unwrap() + + + "asdf".to_string() +} + + +fn longest_palindrome_dp(s: String) -> String { + let len = s.len(); + let mut m = vec![vec![false; len]; len]; + let mut max = 0; + let mut max_start = 0; + + for cl in 1..=len { + for i in 0..=(len - cl) { + let j = i + cl - 1; + + println!("{},{}", i , j); + + if cl == 1 { + m[i][j] = true; + } else if cl == 2 { + m[i][j] = s.chars().nth(i).unwrap() == s.chars().nth(j).unwrap(); + } else { + m[i][j] = s.chars().nth(i).unwrap() == s.chars().nth(j).unwrap() && m[i+1][j-1]; + } + + if m[i][j] && cl > max { + max = cl; + max_start = i; + } + } + } + + s.get(max_start..max_start+max).unwrap().to_string() } fn main() { println!("Hello, world!"); - println!("{:?}", two_sum(vec![3,2,4], 6)); + println!("{}", longest_palindrome("abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababa".to_string())); }