Skip to content

Commit 70e36ed

Browse files
add 680
1 parent cf3d49c commit 70e36ed

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

src/main/java/com/fishercoder/solutions/_680.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,28 @@ public boolean validPalindrome(String s) {
5757
return diff < 2;
5858
}
5959
}
60+
61+
public static class Solution2 {
62+
public boolean validPalindrome(String s) {
63+
int left = 0;
64+
int right = s.length() - 1;
65+
while (left < right) {
66+
if (s.charAt(left) != s.charAt(right)) {
67+
return isValid(s, left + 1, right) || isValid(s, left, right - 1);
68+
}
69+
left++;
70+
right--;
71+
}
72+
return true;
73+
}
74+
75+
private boolean isValid(String s, int left, int right) {
76+
while (left < right) {
77+
if (s.charAt(left++) != s.charAt(right--)) {
78+
return false;
79+
}
80+
}
81+
return true;
82+
}
83+
}
6084
}

src/test/java/com/fishercoder/_680Test.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,44 +8,53 @@
88

99
public class _680Test {
1010
private static _680.Solution1 solution1;
11+
private static _680.Solution2 solution2;
1112

1213
@BeforeClass
1314
public static void setup() {
1415
solution1 = new _680.Solution1();
16+
solution2 = new _680.Solution2();
1517
}
1618

1719
@Test
1820
public void test1() {
1921
assertEquals(true, solution1.validPalindrome("aba"));
22+
assertEquals(true, solution2.validPalindrome("aba"));
2023
}
2124

2225
@Test
2326
public void test2() {
2427
assertEquals(true, solution1.validPalindrome("abcca"));
28+
assertEquals(true, solution2.validPalindrome("abcca"));
2529
}
2630

2731
@Test
2832
public void test3() {
2933
assertEquals(true, solution1.validPalindrome("acbca"));
34+
assertEquals(true, solution2.validPalindrome("acbca"));
3035
}
3136

3237
@Test
3338
public void test4() {
3439
assertEquals(false, solution1.validPalindrome("accbba"));
40+
assertEquals(false, solution2.validPalindrome("accbba"));
3541
}
3642

3743
@Test
3844
public void test5() {
3945
assertEquals(true, solution1.validPalindrome("abdeeda"));
46+
assertEquals(true, solution2.validPalindrome("abdeeda"));
4047
}
4148

4249
@Test
4350
public void test6() {
4451
assertEquals(true, solution1.validPalindrome("cbbcc"));
52+
assertEquals(true, solution2.validPalindrome("cbbcc"));
4553
}
4654

4755
@Test
4856
public void test7() {
4957
assertEquals(false, solution1.validPalindrome("abc"));
58+
assertEquals(false, solution2.validPalindrome("abc"));
5059
}
5160
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy