Longest Palindromic Substring LeetCode solution in C++

1
class Solution {
2
public:
3
string longestPalindrome(string s) {
4
if (s.size() <= 1) return s;
5

6
string longest = "";
7

8
for (int i = 0; i < s.size(); i++) {
9
string sub1 = expand(s, i, i + 1);
10
string sub2 = expand(s, i, i);
11

12
string sub3 = sub1.size() > sub2.size() ? sub1 : sub2;
13

14
if (sub3.size() > longest.size()) {
15
longest = sub3;
16
}
17
}
18
return longest;
19
}
20

21
string expand(string s, int i, int j) {
22
while (j < s.size() && i >= 0 && s[i] == s[j]) {
23
i--;
24
j++;
25
}
26
// Add 1 to i and subtract 1 from j because the range is expanded by 1 on
27
// each side before it ends
28
return s.substr(i + 1, j - i - 1);
29
}
30
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0