File tree 4 files changed +92
-16
lines changed
solution/1300-1399/1328.Break a Palindrome
4 files changed +92
-16
lines changed Original file line number Diff line number Diff line change @@ -94,17 +94,17 @@ class Solution {
94
94
if (n == 1 ) {
95
95
return " " ;
96
96
}
97
- char [] cs = palindrome. toCharArray();
97
+ char [] s = palindrome. toCharArray();
98
98
int i = 0 ;
99
- while (i < n / 2 && cs [i] == ' a' ) {
99
+ while (i < n / 2 && s [i] == ' a' ) {
100
100
++ i;
101
101
}
102
102
if (i == n / 2 ) {
103
- cs [n - 1 ] = ' b' ;
103
+ s [n - 1 ] = ' b' ;
104
104
} else {
105
- cs [i] = ' a' ;
105
+ s [i] = ' a' ;
106
106
}
107
- return String . valueOf(cs );
107
+ return String . valueOf(s );
108
108
}
109
109
}
110
110
```
@@ -177,6 +177,33 @@ function breakPalindrome(palindrome: string): string {
177
177
}
178
178
```
179
179
180
+ #### Rust
181
+
182
+ ``` rust
183
+ impl Solution {
184
+ pub fn break_palindrome (palindrome : String ) -> String {
185
+ let n = palindrome . len ();
186
+ if n == 1 {
187
+ return "" . to_string ();
188
+ }
189
+ let mut s : Vec <char > = palindrome . chars (). collect ();
190
+ let mut i = 0 ;
191
+
192
+ while i < n / 2 && s [i ] == 'a' {
193
+ i += 1 ;
194
+ }
195
+
196
+ if i == n / 2 {
197
+ s [n - 1 ] = 'b' ;
198
+ } else {
199
+ s [i ] = 'a' ;
200
+ }
201
+
202
+ s . into_iter (). collect ()
203
+ }
204
+ }
205
+ ```
206
+
180
207
<!-- tabs: end -->
181
208
182
209
<!-- solution: end -->
Original file line number Diff line number Diff line change @@ -95,17 +95,17 @@ class Solution {
95
95
if (n == 1 ) {
96
96
return " " ;
97
97
}
98
- char [] cs = palindrome. toCharArray();
98
+ char [] s = palindrome. toCharArray();
99
99
int i = 0 ;
100
- while (i < n / 2 && cs [i] == ' a' ) {
100
+ while (i < n / 2 && s [i] == ' a' ) {
101
101
++ i;
102
102
}
103
103
if (i == n / 2 ) {
104
- cs [n - 1 ] = ' b' ;
104
+ s [n - 1 ] = ' b' ;
105
105
} else {
106
- cs [i] = ' a' ;
106
+ s [i] = ' a' ;
107
107
}
108
- return String . valueOf(cs );
108
+ return String . valueOf(s );
109
109
}
110
110
}
111
111
```
@@ -178,6 +178,33 @@ function breakPalindrome(palindrome: string): string {
178
178
}
179
179
```
180
180
181
+ #### Rust
182
+
183
+ ``` rust
184
+ impl Solution {
185
+ pub fn break_palindrome (palindrome : String ) -> String {
186
+ let n = palindrome . len ();
187
+ if n == 1 {
188
+ return "" . to_string ();
189
+ }
190
+ let mut s : Vec <char > = palindrome . chars (). collect ();
191
+ let mut i = 0 ;
192
+
193
+ while i < n / 2 && s [i ] == 'a' {
194
+ i += 1 ;
195
+ }
196
+
197
+ if i == n / 2 {
198
+ s [n - 1 ] = 'b' ;
199
+ } else {
200
+ s [i ] = 'a' ;
201
+ }
202
+
203
+ s . into_iter (). collect ()
204
+ }
205
+ }
206
+ ```
207
+
181
208
<!-- tabs: end -->
182
209
183
210
<!-- solution: end -->
Original file line number Diff line number Diff line change @@ -4,16 +4,16 @@ public String breakPalindrome(String palindrome) {
4
4
if (n == 1 ) {
5
5
return "" ;
6
6
}
7
- char [] cs = palindrome .toCharArray ();
7
+ char [] s = palindrome .toCharArray ();
8
8
int i = 0 ;
9
- while (i < n / 2 && cs [i ] == 'a' ) {
9
+ while (i < n / 2 && s [i ] == 'a' ) {
10
10
++i ;
11
11
}
12
12
if (i == n / 2 ) {
13
- cs [n - 1 ] = 'b' ;
13
+ s [n - 1 ] = 'b' ;
14
14
} else {
15
- cs [i ] = 'a' ;
15
+ s [i ] = 'a' ;
16
16
}
17
- return String .valueOf (cs );
17
+ return String .valueOf (s );
18
18
}
19
- }
19
+ }
Original file line number Diff line number Diff line change
1
+ impl Solution {
2
+ pub fn break_palindrome ( palindrome : String ) -> String {
3
+ let n = palindrome. len ( ) ;
4
+ if n == 1 {
5
+ return "" . to_string ( ) ;
6
+ }
7
+ let mut s: Vec < char > = palindrome. chars ( ) . collect ( ) ;
8
+ let mut i = 0 ;
9
+
10
+ while i < n / 2 && s[ i] == 'a' {
11
+ i += 1 ;
12
+ }
13
+
14
+ if i == n / 2 {
15
+ s[ n - 1 ] = 'b' ;
16
+ } else {
17
+ s[ i] = 'a' ;
18
+ }
19
+
20
+ s. into_iter ( ) . collect ( )
21
+ }
22
+ }
You can’t perform that action at this time.
0 commit comments