File tree Expand file tree Collapse file tree 3 files changed +112
-0
lines changed
main/java/com/fishercoder/solutions
test/java/com/fishercoder Expand file tree Collapse file tree 3 files changed +112
-0
lines changed Original file line number Diff line number Diff line change @@ -22,6 +22,7 @@ Your ideas/fixes/algorithms are more than welcome!
22
22
23
23
| # | Title | Solutions | Time | Space | Difficulty | Tag | Notes
24
24
|-----|----------------|---------------|---------------|---------------|-------------|--------------|-----
25
+ |680|[ Valid Palindrome II] ( https://leetcode.com/problems/valid-palindrome-ii/ ) |[ Solution] ( ../master/src/main/java/com/fishercoder/solutions/_680.java ) | O(n) | O(1) | Easy | String
25
26
| 676| [ Implement Magic Dictionary] ( https://leetcode.com/problems/implement-magic-dictionary/ ) | [ Solution] ( ../master/src/main/java/com/fishercoder/solutions/_676.java ) | O(n^2) | O(n) | Medium |
26
27
| 674| [ Longest Continuous Increasing Subsequence] ( https://leetcode.com/problems/longest-continuous-increasing-subsequence/ ) | [ Solution] ( ../master/src/main/java/com/fishercoder/solutions/_674.java ) | O(n^2) | O(1) | Easy |
27
28
|672|[ Bulb Switcher II] ( https://leetcode.com/problems/bulb-switcher-ii/ ) |[ Solution] ( ../master/src/main/java/com/fishercoder/solutions/_672.java ) | O(1) | O(1) | Medium | Math
Original file line number Diff line number Diff line change
1
+ package com .fishercoder .solutions ;
2
+
3
+ /**
4
+ * 680. Valid Palindrome II
5
+ *
6
+ * Given a non-empty string s, you may delete at most one character. Judge whether you can make it a palindrome.
7
+
8
+ Example 1:
9
+ Input: "aba"
10
+ Output: True
11
+
12
+ Example 2:
13
+ Input: "abca"
14
+ Output: True
15
+ Explanation: You could delete the character 'c'.
16
+
17
+ Note:
18
+ The string will only contain lowercase characters a-z. The maximum length of the string is 50000.
19
+
20
+ */
21
+ public class _680 {
22
+ public static class Solution1 {
23
+ public boolean validPalindrome (String s ) {
24
+ int left = 0 ;
25
+ int right = s .length () - 1 ;
26
+ int diff = 0 ;
27
+ while (left < right ) {
28
+ if (s .charAt (left ) != s .charAt (right )) {
29
+ left ++;
30
+ diff ++;
31
+ if (diff > 1 ) {
32
+ break ;
33
+ }
34
+ } else {
35
+ left ++;
36
+ right --;
37
+ }
38
+ }
39
+ if (diff < 2 ) {
40
+ return true ;
41
+ }
42
+ diff = 0 ;
43
+ left = 0 ;
44
+ right = s .length () - 1 ;
45
+ while (left < right ) {
46
+ if (s .charAt (left ) != s .charAt (right )) {
47
+ right --;
48
+ diff ++;
49
+ if (diff > 1 ) {
50
+ break ;
51
+ }
52
+ } else {
53
+ left ++;
54
+ right --;
55
+ }
56
+ }
57
+ return diff < 2 ;
58
+ }
59
+ }
60
+ }
Original file line number Diff line number Diff line change
1
+ package com .fishercoder ;
2
+
3
+ import com .fishercoder .solutions ._680 ;
4
+ import org .junit .BeforeClass ;
5
+ import org .junit .Test ;
6
+
7
+ import static org .junit .Assert .assertEquals ;
8
+
9
+ public class _680Test {
10
+ private static _680 .Solution1 solution1 ;
11
+
12
+ @ BeforeClass
13
+ public static void setup () {
14
+ solution1 = new _680 .Solution1 ();
15
+ }
16
+
17
+ @ Test
18
+ public void test1 () {
19
+ assertEquals (true , solution1 .validPalindrome ("aba" ));
20
+ }
21
+
22
+ @ Test
23
+ public void test2 () {
24
+ assertEquals (true , solution1 .validPalindrome ("abcca" ));
25
+ }
26
+
27
+ @ Test
28
+ public void test3 () {
29
+ assertEquals (true , solution1 .validPalindrome ("acbca" ));
30
+ }
31
+
32
+ @ Test
33
+ public void test4 () {
34
+ assertEquals (false , solution1 .validPalindrome ("accbba" ));
35
+ }
36
+
37
+ @ Test
38
+ public void test5 () {
39
+ assertEquals (true , solution1 .validPalindrome ("abdeeda" ));
40
+ }
41
+
42
+ @ Test
43
+ public void test6 () {
44
+ assertEquals (true , solution1 .validPalindrome ("cbbcc" ));
45
+ }
46
+
47
+ @ Test
48
+ public void test7 () {
49
+ assertEquals (false , solution1 .validPalindrome ("abc" ));
50
+ }
51
+ }
You can’t perform that action at this time.
0 commit comments