Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit bbf6fec

Browse files
authored
feat: update solutions to lc problem: No.0680 (doocs#4016)
No.0680.Valid Palindrome II
1 parent c905bfa commit bbf6fec

File tree

6 files changed

+95
-92
lines changed

6 files changed

+95
-92
lines changed

solution/0600-0699/0680.Valid Palindrome II/README.md

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -94,18 +94,21 @@ class Solution:
9494

9595
```java
9696
class Solution {
97-
public boolean validPalindrome(String s) {
98-
for (int i = 0, j = s.length() - 1; i < j; ++i, --j) {
99-
if (s.charAt(i) != s.charAt(j)) {
100-
return check(s, i + 1, j) || check(s, i, j - 1);
97+
private char[] s;
98+
99+
public boolean validPalindrome(String S) {
100+
this.s = S.toCharArray();
101+
for (int i = 0, j = s.length - 1; i < j; ++i, --j) {
102+
if (s[i] != s[j]) {
103+
return check(i + 1, j) || check(i, j - 1);
101104
}
102105
}
103106
return true;
104107
}
105108

106-
private boolean check(String s, int i, int j) {
109+
private boolean check(int i, int j) {
107110
for (; i < j; ++i, --j) {
108-
if (s.charAt(i) != s.charAt(j)) {
111+
if (s[i] != s[j]) {
109112
return false;
110113
}
111114
}
@@ -120,18 +123,17 @@ class Solution {
120123
class Solution {
121124
public:
122125
bool validPalindrome(string s) {
123-
for (int i = 0, j = s.size() - 1; i < j; ++i, --j) {
124-
if (s[i] != s[j]) {
125-
return check(s, i + 1, j) || check(s, i, j - 1);
126+
auto check = [&](int i, int j) {
127+
for (; i < j; ++i, --j) {
128+
if (s[i] != s[j]) {
129+
return false;
130+
}
126131
}
127-
}
128-
return 1;
129-
}
130-
131-
bool check(string s, int i, int j) {
132-
for (; i < j; ++i, --j) {
132+
return true;
133+
};
134+
for (int i = 0, j = s.size() - 1; i < j; ++i, --j) {
133135
if (s[i] != s[j]) {
134-
return false;
136+
return check(i + 1, j) || check(i, j - 1);
135137
}
136138
}
137139
return true;
@@ -164,18 +166,17 @@ func validPalindrome(s string) bool {
164166

165167
```ts
166168
function validPalindrome(s: string): boolean {
167-
for (let i: number = 0, j = s.length - 1; i < j; ++i, --j) {
168-
if (s.charAt(i) != s.charAt(j)) {
169-
return isPalinddrome(s.slice(i, j)) || isPalinddrome(s.slice(i + 1, j + 1));
169+
const check = (i: number, j: number): boolean => {
170+
for (; i < j; ++i, --j) {
171+
if (s[i] !== s[j]) {
172+
return false;
173+
}
170174
}
171-
}
172-
return true;
173-
}
174-
175-
function isPalinddrome(s: string): boolean {
176-
for (let i: number = 0, j = s.length - 1; i < j; ++i, --j) {
177-
if (s.charAt(i) != s.charAt(j)) {
178-
return false;
175+
return true;
176+
};
177+
for (let i = 0, j = s.length - 1; i < j; ++i, --j) {
178+
if (s[i] !== s[j]) {
179+
return check(i + 1, j) || check(i, j - 1);
179180
}
180181
}
181182
return true;
@@ -190,16 +191,16 @@ function isPalinddrome(s: string): boolean {
190191
* @return {boolean}
191192
*/
192193
var validPalindrome = function (s) {
193-
let check = function (i, j) {
194+
const check = function (i, j) {
194195
for (; i < j; ++i, --j) {
195-
if (s.charAt(i) != s.charAt(j)) {
196+
if (s[i] !== s[j]) {
196197
return false;
197198
}
198199
}
199200
return true;
200201
};
201202
for (let i = 0, j = s.length - 1; i < j; ++i, --j) {
202-
if (s.charAt(i) != s.charAt(j)) {
203+
if (s[i] !== s[j]) {
203204
return check(i + 1, j) || check(i, j - 1);
204205
}
205206
}

solution/0600-0699/0680.Valid Palindrome II/README_EN.md

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -91,18 +91,21 @@ class Solution:
9191

9292
```java
9393
class Solution {
94-
public boolean validPalindrome(String s) {
95-
for (int i = 0, j = s.length() - 1; i < j; ++i, --j) {
96-
if (s.charAt(i) != s.charAt(j)) {
97-
return check(s, i + 1, j) || check(s, i, j - 1);
94+
private char[] s;
95+
96+
public boolean validPalindrome(String S) {
97+
this.s = S.toCharArray();
98+
for (int i = 0, j = s.length - 1; i < j; ++i, --j) {
99+
if (s[i] != s[j]) {
100+
return check(i + 1, j) || check(i, j - 1);
98101
}
99102
}
100103
return true;
101104
}
102105

103-
private boolean check(String s, int i, int j) {
106+
private boolean check(int i, int j) {
104107
for (; i < j; ++i, --j) {
105-
if (s.charAt(i) != s.charAt(j)) {
108+
if (s[i] != s[j]) {
106109
return false;
107110
}
108111
}
@@ -117,18 +120,17 @@ class Solution {
117120
class Solution {
118121
public:
119122
bool validPalindrome(string s) {
120-
for (int i = 0, j = s.size() - 1; i < j; ++i, --j) {
121-
if (s[i] != s[j]) {
122-
return check(s, i + 1, j) || check(s, i, j - 1);
123+
auto check = [&](int i, int j) {
124+
for (; i < j; ++i, --j) {
125+
if (s[i] != s[j]) {
126+
return false;
127+
}
123128
}
124-
}
125-
return 1;
126-
}
127-
128-
bool check(string s, int i, int j) {
129-
for (; i < j; ++i, --j) {
129+
return true;
130+
};
131+
for (int i = 0, j = s.size() - 1; i < j; ++i, --j) {
130132
if (s[i] != s[j]) {
131-
return false;
133+
return check(i + 1, j) || check(i, j - 1);
132134
}
133135
}
134136
return true;
@@ -161,18 +163,17 @@ func validPalindrome(s string) bool {
161163

162164
```ts
163165
function validPalindrome(s: string): boolean {
164-
for (let i: number = 0, j = s.length - 1; i < j; ++i, --j) {
165-
if (s.charAt(i) != s.charAt(j)) {
166-
return isPalinddrome(s.slice(i, j)) || isPalinddrome(s.slice(i + 1, j + 1));
166+
const check = (i: number, j: number): boolean => {
167+
for (; i < j; ++i, --j) {
168+
if (s[i] !== s[j]) {
169+
return false;
170+
}
167171
}
168-
}
169-
return true;
170-
}
171-
172-
function isPalinddrome(s: string): boolean {
173-
for (let i: number = 0, j = s.length - 1; i < j; ++i, --j) {
174-
if (s.charAt(i) != s.charAt(j)) {
175-
return false;
172+
return true;
173+
};
174+
for (let i = 0, j = s.length - 1; i < j; ++i, --j) {
175+
if (s[i] !== s[j]) {
176+
return check(i + 1, j) || check(i, j - 1);
176177
}
177178
}
178179
return true;
@@ -187,16 +188,16 @@ function isPalinddrome(s: string): boolean {
187188
* @return {boolean}
188189
*/
189190
var validPalindrome = function (s) {
190-
let check = function (i, j) {
191+
const check = function (i, j) {
191192
for (; i < j; ++i, --j) {
192-
if (s.charAt(i) != s.charAt(j)) {
193+
if (s[i] !== s[j]) {
193194
return false;
194195
}
195196
}
196197
return true;
197198
};
198199
for (let i = 0, j = s.length - 1; i < j; ++i, --j) {
199-
if (s.charAt(i) != s.charAt(j)) {
200+
if (s[i] !== s[j]) {
200201
return check(i + 1, j) || check(i, j - 1);
201202
}
202203
}
Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
class Solution {
22
public:
33
bool validPalindrome(string s) {
4-
for (int i = 0, j = s.size() - 1; i < j; ++i, --j) {
5-
if (s[i] != s[j]) {
6-
return check(s, i + 1, j) || check(s, i, j - 1);
4+
auto check = [&](int i, int j) {
5+
for (; i < j; ++i, --j) {
6+
if (s[i] != s[j]) {
7+
return false;
8+
}
79
}
8-
}
9-
return 1;
10-
}
11-
12-
bool check(string s, int i, int j) {
13-
for (; i < j; ++i, --j) {
10+
return true;
11+
};
12+
for (int i = 0, j = s.size() - 1; i < j; ++i, --j) {
1413
if (s[i] != s[j]) {
15-
return false;
14+
return check(i + 1, j) || check(i, j - 1);
1615
}
1716
}
1817
return true;
1918
}
20-
};
19+
};
Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
11
class Solution {
2-
public boolean validPalindrome(String s) {
3-
for (int i = 0, j = s.length() - 1; i < j; ++i, --j) {
4-
if (s.charAt(i) != s.charAt(j)) {
5-
return check(s, i + 1, j) || check(s, i, j - 1);
2+
private char[] s;
3+
4+
public boolean validPalindrome(String S) {
5+
this.s = S.toCharArray();
6+
for (int i = 0, j = s.length - 1; i < j; ++i, --j) {
7+
if (s[i] != s[j]) {
8+
return check(i + 1, j) || check(i, j - 1);
69
}
710
}
811
return true;
912
}
1013

11-
private boolean check(String s, int i, int j) {
14+
private boolean check(int i, int j) {
1215
for (; i < j; ++i, --j) {
13-
if (s.charAt(i) != s.charAt(j)) {
16+
if (s[i] != s[j]) {
1417
return false;
1518
}
1619
}
1720
return true;
1821
}
19-
}
22+
}

solution/0600-0699/0680.Valid Palindrome II/Solution.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,16 @@
33
* @return {boolean}
44
*/
55
var validPalindrome = function (s) {
6-
let check = function (i, j) {
6+
const check = function (i, j) {
77
for (; i < j; ++i, --j) {
8-
if (s.charAt(i) != s.charAt(j)) {
8+
if (s[i] !== s[j]) {
99
return false;
1010
}
1111
}
1212
return true;
1313
};
1414
for (let i = 0, j = s.length - 1; i < j; ++i, --j) {
15-
if (s.charAt(i) != s.charAt(j)) {
15+
if (s[i] !== s[j]) {
1616
return check(i + 1, j) || check(i, j - 1);
1717
}
1818
}

solution/0600-0699/0680.Valid Palindrome II/Solution.ts

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
function validPalindrome(s: string): boolean {
2-
for (let i: number = 0, j = s.length - 1; i < j; ++i, --j) {
3-
if (s.charAt(i) != s.charAt(j)) {
4-
return isPalinddrome(s.slice(i, j)) || isPalinddrome(s.slice(i + 1, j + 1));
2+
const check = (i: number, j: number): boolean => {
3+
for (; i < j; ++i, --j) {
4+
if (s[i] !== s[j]) {
5+
return false;
6+
}
57
}
6-
}
7-
return true;
8-
}
9-
10-
function isPalinddrome(s: string): boolean {
11-
for (let i: number = 0, j = s.length - 1; i < j; ++i, --j) {
12-
if (s.charAt(i) != s.charAt(j)) {
13-
return false;
8+
return true;
9+
};
10+
for (let i = 0, j = s.length - 1; i < j; ++i, --j) {
11+
if (s[i] !== s[j]) {
12+
return check(i + 1, j) || check(i, j - 1);
1413
}
1514
}
1615
return true;

0 commit comments

Comments
 (0)