8000 add 680 · saurabh-deochake/Leetcode@70e36ed · GitHub
[go: up one dir, main page]

Skip to content 8000

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)
0