From 3cb8156630301b3ce896ef08e2bd93a80382723f Mon Sep 17 00:00:00 2001 From: yanglbme Date: Wed, 5 Mar 2025 08:36:35 +0800 Subject: [PATCH] feat: add solutions to lc problem: No.1328 No.1328.Break a Palindrome --- .../1328.Break a Palindrome/README.md | 37 ++++++++++++++++--- .../1328.Break a Palindrome/README_EN.md | 37 ++++++++++++++++--- .../1328.Break a Palindrome/Solution.java | 12 +++--- .../1328.Break a Palindrome/Solution.rs | 22 +++++++++++ 4 files changed, 92 insertions(+), 16 deletions(-) create mode 100644 solution/1300-1399/1328.Break a Palindrome/Solution.rs diff --git a/solution/1300-1399/1328.Break a Palindrome/README.md b/solution/1300-1399/1328.Break a Palindrome/README.md index b76ea6d816308..6e8c0276736ce 100644 --- a/solution/1300-1399/1328.Break a Palindrome/README.md +++ b/solution/1300-1399/1328.Break a Palindrome/README.md @@ -94,17 +94,17 @@ class Solution { if (n == 1) { return ""; } - char[] cs = palindrome.toCharArray(); + char[] s = palindrome.toCharArray(); int i = 0; - while (i < n / 2 && cs[i] == 'a') { + while (i < n / 2 && s[i] == 'a') { ++i; } if (i == n / 2) { - cs[n - 1] = 'b'; + s[n - 1] = 'b'; } else { - cs[i] = 'a'; + s[i] = 'a'; } - return String.valueOf(cs); + return String.valueOf(s); } } ``` @@ -177,6 +177,33 @@ function breakPalindrome(palindrome: string): string { } ``` +#### Rust + +```rust +impl Solution { + pub fn break_palindrome(palindrome: String) -> String { + let n = palindrome.len(); + if n == 1 { + return "".to_string(); + } + let mut s: Vec = palindrome.chars().collect(); + let mut i = 0; + + while i < n / 2 && s[i] == 'a' { + i += 1; + } + + if i == n / 2 { + s[n - 1] = 'b'; + } else { + s[i] = 'a'; + } + + s.into_iter().collect() + } +} +``` + diff --git a/solution/1300-1399/1328.Break a Palindrome/README_EN.md b/solution/1300-1399/1328.Break a Palindrome/README_EN.md index 2103a3bc7b3ad..d26367ae0d503 100644 --- a/solution/1300-1399/1328.Break a Palindrome/README_EN.md +++ b/solution/1300-1399/1328.Break a Palindrome/README_EN.md @@ -95,17 +95,17 @@ class Solution { if (n == 1) { return ""; } - char[] cs = palindrome.toCharArray(); + char[] s = palindrome.toCharArray(); int i = 0; - while (i < n / 2 && cs[i] == 'a') { + while (i < n / 2 && s[i] == 'a') { ++i; } if (i == n / 2) { - cs[n - 1] = 'b'; + s[n - 1] = 'b'; } else { - cs[i] = 'a'; + s[i] = 'a'; } - return String.valueOf(cs); + return String.valueOf(s); } } ``` @@ -178,6 +178,33 @@ function breakPalindrome(palindrome: string): string { } ``` +#### Rust + +```rust +impl Solution { + pub fn break_palindrome(palindrome: String) -> String { + let n = palindrome.len(); + if n == 1 { + return "".to_string(); + } + let mut s: Vec = palindrome.chars().collect(); + let mut i = 0; + + while i < n / 2 && s[i] == 'a' { + i += 1; + } + + if i == n / 2 { + s[n - 1] = 'b'; + } else { + s[i] = 'a'; + } + + s.into_iter().collect() + } +} +``` + diff --git a/solution/1300-1399/1328.Break a Palindrome/Solution.java b/solution/1300-1399/1328.Break a Palindrome/Solution.java index f3633f37e70e4..4d8754ae19224 100644 --- a/solution/1300-1399/1328.Break a Palindrome/Solution.java +++ b/solution/1300-1399/1328.Break a Palindrome/Solution.java @@ -4,16 +4,16 @@ public String breakPalindrome(String palindrome) { if (n == 1) { return ""; } - char[] cs = palindrome.toCharArray(); + char[] s = palindrome.toCharArray(); int i = 0; - while (i < n / 2 && cs[i] == 'a') { + while (i < n / 2 && s[i] == 'a') { ++i; } if (i == n / 2) { - cs[n - 1] = 'b'; + s[n - 1] = 'b'; } else { - cs[i] = 'a'; + s[i] = 'a'; } - return String.valueOf(cs); + return String.valueOf(s); } -} \ No newline at end of file +} diff --git a/solution/1300-1399/1328.Break a Palindrome/Solution.rs b/solution/1300-1399/1328.Break a Palindrome/Solution.rs new file mode 100644 index 0000000000000..7cc4e82ae5998 --- /dev/null +++ b/solution/1300-1399/1328.Break a Palindrome/Solution.rs @@ -0,0 +1,22 @@ +impl Solution { + pub fn break_palindrome(palindrome: String) -> String { + let n = palindrome.len(); + if n == 1 { + return "".to_string(); + } + let mut s: Vec = palindrome.chars().collect(); + let mut i = 0; + + while i < n / 2 && s[i] == 'a' { + i += 1; + } + + if i == n / 2 { + s[n - 1] = 'b'; + } else { + s[i] = 'a'; + } + + s.into_iter().collect() + } +}