Last Substring in Lexicographical Order LeetCode solution in Python
1# Runtime: 273 ms (Top 82.1%) | Memory: 20.15 MB (Top 100.0%)234class Solution:5def lastSubstring(self, s: str) -> str:6i = 07j = 18k = 09n = len(s)10while j + k < n:11if s[i + k] == s[j + k]:12k += 113elif s[i + k] > s[j + k]:14j += k + 115k = 016elif s[i + k] < s[j + k]:17i = max(i + k + 1, j)18j = i + 119k = 020return s[i:]