20250203 finished.

This commit is contained in:
jackfiled 2025-02-03 11:26:28 +08:00
parent f3fd9ab5d1
commit 85f17ff6f0
2 changed files with 55 additions and 0 deletions

View File

@ -466,3 +466,5 @@ mod p541_reverse_string_ii;
mod p81_search_in_rotated_sorted_array_ii; mod p81_search_in_rotated_sorted_array_ii;
mod p598_range_addition_ii; mod p598_range_addition_ii;
mod p680_valid_palindrome_ii;

View 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()));
}
}