20250305 finished.

This commit is contained in:
jackfiled 2025-03-05 11:59:54 +08:00
parent 16c61d436c
commit 88ea0ab1b7
2 changed files with 52 additions and 0 deletions

View File

@ -518,3 +518,5 @@ mod p132_palindrome_partitioning_ii;
mod p1278_palindrome_partitioning_iii; mod p1278_palindrome_partitioning_iii;
mod p1745_palindrome_partitioning_iv; mod p1745_palindrome_partitioning_iv;
mod p1328_break_a_palindrome;

View File

@ -0,0 +1,50 @@
/**
* [1328] Break a Palindrome
*/
pub struct Solution {}
// submission codes start here
impl Solution {
pub fn break_palindrome(palindrome: String) -> String {
if palindrome.len() == 1 {
return "".to_owned();
}
let mut s: Vec<char> = palindrome.chars().collect();
let mut flag = false;
for i in 0..s.len() / 2 {
if s[i] != 'a' {
s[i] = 'a';
flag = true;
break;
}
}
// 说明s的前半段全部都是a
// 直接把最后一个字符改成b
if !flag {
let pos = s.len() - 1;
s[pos] = 'b';
}
s.into_iter().collect()
}
}
// submission codes end
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_1328() {
assert_eq!("aabab", Solution::break_palindrome("aabaa".to_owned()));
assert_eq!("ab", Solution::break_palindrome("aa".to_owned()));
assert_eq!("ab", Solution::break_palindrome("bb".to_owned()));
assert_eq!("aaccba", Solution::break_palindrome("abccba".to_owned()));
assert_eq!("", Solution::break_palindrome("a".to_owned()));
}
}