LongestPalindromicSubstring.java
· 1.1 KiB · Java
Raw
// Problem: https://leetcode.com/problems/longest-palindromic-substring/
// Explanation: https://youtu.be/XYQecbcd6_c
class Solution {
public String longestPalindrome(String s) {
var result = "";
var resultLength = 0;
for (int i = 0; i < s.length(); i++) {
// Odd length
var l = i;
var r = i;
while (l >= 0 && r < s.length() && s.charAt(l) == s.charAt(r)) {
if ((r - l + 1) > resultLength) {
result = s.substring(l, r + 1);
resultLength = r - l + 1;
}
l -= 1;
r += 1;
}
// Even length
l = i;
r = i + 1;
while (l >= 0 && r < s.length() && s.charAt(l) == s.charAt(r)) {
if ((r - l + 1) > resultLength) {
result = s.substring(l, r + 1);
resultLength = r - l + 1;
}
l -= 1;
r += 1;
}
}
return result;
}
}
| 1 | // Problem: https://leetcode.com/problems/longest-palindromic-substring/ |
| 2 | // Explanation: https://youtu.be/XYQecbcd6_c |
| 3 | |
| 4 | class Solution { |
| 5 | public String longestPalindrome(String s) { |
| 6 | var result = ""; |
| 7 | var resultLength = 0; |
| 8 | |
| 9 | for (int i = 0; i < s.length(); i++) { |
| 10 | // Odd length |
| 11 | var l = i; |
| 12 | var r = i; |
| 13 | |
| 14 | while (l >= 0 && r < s.length() && s.charAt(l) == s.charAt(r)) { |
| 15 | if ((r - l + 1) > resultLength) { |
| 16 | result = s.substring(l, r + 1); |
| 17 | resultLength = r - l + 1; |
| 18 | } |
| 19 | l -= 1; |
| 20 | r += 1; |
| 21 | } |
| 22 | |
| 23 | // Even length |
| 24 | l = i; |
| 25 | r = i + 1; |
| 26 | while (l >= 0 && r < s.length() && s.charAt(l) == s.charAt(r)) { |
| 27 | if ((r - l + 1) > resultLength) { |
| 28 | result = s.substring(l, r + 1); |
| 29 | resultLength = r - l + 1; |
| 30 | } |
| 31 | l -= 1; |
| 32 | r += 1; |
| 33 | } |
| 34 | } |
| 35 | |
| 36 | return result; |
| 37 | } |
| 38 | } |