20250203 finished.
This commit is contained in:
		@@ -466,3 +466,5 @@ mod p541_reverse_string_ii;
 | 
			
		||||
mod p81_search_in_rotated_sorted_array_ii;
 | 
			
		||||
 | 
			
		||||
mod p598_range_addition_ii;
 | 
			
		||||
 | 
			
		||||
mod p680_valid_palindrome_ii;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										53
									
								
								src/problem/p680_valid_palindrome_ii.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								src/problem/p680_valid_palindrome_ii.rs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,53 @@
 | 
			
		||||
/**
 | 
			
		||||
 * [680] Valid Palindrome II
 | 
			
		||||
 */
 | 
			
		||||
pub struct Solution {}
 | 
			
		||||
 | 
			
		||||
// submission codes start here
 | 
			
		||||
 | 
			
		||||
impl Solution {
 | 
			
		||||
    pub fn valid_palindrome(s: String) -> bool {
 | 
			
		||||
        let s: Vec<char> = s.chars().collect();
 | 
			
		||||
        let length = s.len();
 | 
			
		||||
 | 
			
		||||
        for i in 0..length / 2 {
 | 
			
		||||
            if s[i] != s[s.len() - 1 - i] {
 | 
			
		||||
                // 这B玩意儿还带回溯的
 | 
			
		||||
                // 需要选择从左边删还是从右边删
 | 
			
		||||
                // 这里直接强制一下
 | 
			
		||||
                return Self::check_palindrome(&s[i + 1..s.len() - i])
 | 
			
		||||
                    || Self::check_palindrome(&s[i..s.len() - 1 - i]);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        true
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fn check_palindrome(s: &[char]) -> bool {
 | 
			
		||||
        for i in 0..s.len() / 2 {
 | 
			
		||||
            if s[i] != s[s.len() - 1 - i] {
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        true
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// submission codes end
 | 
			
		||||
 | 
			
		||||
#[cfg(test)]
 | 
			
		||||
mod tests {
 | 
			
		||||
    use super::*;
 | 
			
		||||
 | 
			
		||||
    #[test]
 | 
			
		||||
    fn test_680() {
 | 
			
		||||
        assert!(Solution::valid_palindrome(
 | 
			
		||||
            "cupuufxoohdfpgjdmysgvhmvffcnqxjjxqncffvmhvgsymdjgpfdhooxfuupucu".to_owned()
 | 
			
		||||
        ));
 | 
			
		||||
        assert!(Solution::valid_palindrome("cbbcc".to_owned()));
 | 
			
		||||
        assert!(Solution::valid_palindrome("aba".to_owned()));
 | 
			
		||||
        assert!(Solution::valid_palindrome("abca".to_owned()));
 | 
			
		||||
        assert!(!Solution::valid_palindrome("abc".to_owned()));
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user