Back to all solutions
#1163 - Last Substring in Lexicographical Order
Problem Description
Given a string s, return the last substring of s in lexicographical order.
Solution
/**
* @param {string} s
* @return {string}
*/
var lastSubstring = function(s) {
let i = 0;
let j = 1;
let k = 0;
const n = s.length;
while (j + k < n) {
if (s[i + k] === s[j + k]) {
k++;
} else if (s[i + k] < s[j + k]) {
i = Math.max(i + k + 1, j);
j = i + 1;
k = 0;
} else {
j += k + 1;
k = 0;
}
}
return s.substring(i);
};