From dc1f0c4c0096013799416664894c5194dc7e1f52 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Fri, 28 Feb 2025 23:13:39 +0800 Subject: chore(store): move everything to store. --- .../leetcode/rust/src/longest_palindrome.rs | 98 ---------------------- 1 file changed, 98 deletions(-) delete mode 100644 works/solutions/leetcode/rust/src/longest_palindrome.rs (limited to 'works/solutions/leetcode/rust/src/longest_palindrome.rs') diff --git a/works/solutions/leetcode/rust/src/longest_palindrome.rs b/works/solutions/leetcode/rust/src/longest_palindrome.rs deleted file mode 100644 index 659ffe0..0000000 --- a/works/solutions/leetcode/rust/src/longest_palindrome.rs +++ /dev/null @@ -1,98 +0,0 @@ -use super::Solution; - -impl Solution { - pub fn longest_palindrome(s: String) -> String { - let bytes = s.as_bytes(); - let len = bytes.len(); - - return match len { - 0 => "".to_string(), - 1 => s, - _ => { - let mut max_length = 1; - let mut result = &bytes[0..1]; - - for i in 1..len { - let mut left_iter = bytes[..i].iter().enumerate().rev(); - let mut odd_right_iter = bytes.iter().enumerate().skip(i + 1); - let mut even_right_iter = bytes.iter().enumerate().skip(i); - let mut count_odd = true; - let mut count_even = true; - while count_odd || count_even { - match left_iter.next() { - Some((index_left, left)) => { - if count_odd { - match odd_right_iter.next() { - Some((index_right, right)) => { - if right == left { - let length = index_right - index_left + 1; - if length > max_length { - max_length = length; - result = &bytes[index_left..index_right + 1]; - } - } else { - count_odd = false; - } - } - None => count_odd = false, - } - } - if count_even { - match even_right_iter.next() { - Some((index_right, right)) => { - if right == left { - let length = index_right - index_left + 1; - if length > max_length { - max_length = length; - result = &bytes[index_left..index_right + 1]; - } - } else { - count_even = false; - } - } - None => count_even = false, - } - } - } - None => break, - } - } - } - String::from_utf8(Vec::from(result)).unwrap() - } - }; - } -} - -#[cfg(test)] -mod tests { - use super::Solution; - - #[test] - fn test() { - assert_eq!( - Solution::longest_palindrome("bb".to_string()), - "bb".to_string() - ); - assert_eq!( - Solution::longest_palindrome("abb".to_string()), - "bb".to_string() - ); - assert_eq!( - Solution::longest_palindrome("abbc".to_string()), - "bb".to_string() - ); - assert_eq!( - Solution::longest_palindrome("abccb".to_string()), - "bccb".to_string() - ); - assert_eq!( - Solution::longest_palindrome("abcdcbd".to_string()), - "bcdcb".to_string() - ); - assert_eq!( - Solution::longest_palindrome("aaaabaaa".to_string()), - "aaabaaa".to_string() - ); - } -} -- cgit v1.2.3