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

Commit fa2be89

Browse files
edit 5
1 parent 46e7636 commit fa2be89

File tree

1 file changed

+14
-15
lines changed
  • src/main/java/com/fishercoder/solutions

1 file changed

+14
-15
lines changed

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

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,44 @@
11
package com.fishercoder.solutions;
22

33
/**
4+
* 5. Longest Palindromic Substring
5+
*
46
* Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.
57
68
Example:
7-
89
Input: "babad"
9-
1010
Output: "bab"
11-
1211
Note: "aba" is also a valid answer.
13-
Example:
1412
13+
Example:
1514
Input: "cbbd"
16-
1715
Output: "bb"
1816
*/
1917
public class _5 {
2018

21-
private int lo, maxLen;
19+
private int low, maxLen;
2220

2321
public String longestPalindrome(String s) {
2422
int len = s.length();
25-
if (len < 2)
23+
if (len < 2) {
2624
return s;
25+
}
2726

2827
for (int i = 0; i < len - 1; i++) {
2928
extendPalindrome(s, i, i); // assume odd length, try to extend Palindrome as possible
3029
extendPalindrome(s, i, i + 1); // assume even length.
3130
}
32-
return s.substring(lo, lo + maxLen);
31+
return s.substring(low, low + maxLen);
3332
}
3433

35-
private void extendPalindrome(String s, int j, int k) {
36-
while (j >= 0 && k < s.length() && s.charAt(j) == s.charAt(k)) {
37-
j--;
38-
k++;
34+
private void extendPalindrome(String s, int left, int right) {
35+
while (left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)) {
36+
left--;
37+
right++;
3938
}
40-
if (maxLen < k - j - 1) {
41-
lo = j + 1;
42-
maxLen = k - j - 1;
39+
if (maxLen < right - left - 1) {
40+
low = left + 1;
41+
maxLen = right - left - 1;
4342
}
4443
}
4544

0 commit comments

Comments
 (0)