20250305 finished.
This commit is contained in:
parent
16c61d436c
commit
88ea0ab1b7
|
@ -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;
|
||||||
|
|
50
src/problem/p1328_break_a_palindrome.rs
Normal file
50
src/problem/p1328_break_a_palindrome.rs
Normal 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()));
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user