Longest Happy Prefix LeetCode solution in C++

1
class Solution {
2
public:
3
string longestPrefix(string s) {
4
if (s == "") return "";
5
int n = s.length();
6
int arr[n];
7
fill(arr, arr + n, 0);
8
int prevLPS = 0, i = 1;
9
while (i < n) {
10
if (s[i] == s[prevLPS]) {
11
arr[i] = prevLPS + 1;
12
i++;
13
prevLPS++;
14
} else if (prevLPS == 0) {
15
arr[i] = 0;
16
i++;
17
} else {
18
prevLPS = arr[prevLPS - 1];
19
}
20
}
21
int oplen = arr[n - 1];
22
string temp = s.substr(n - oplen, oplen);
23
return temp;
24
}
25
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0