[1Sentence]Build the sequence by looking at non-zero elems (easy) and verify diagonally from the end
\n# Code\n\ndef findTheString(self, lcp: List[List[int]]) -> str:\n    n = len(lcp)\n    seq = [0] * n\n    letter = ord(\'a\')\n    lcp.append([0] * (n+1))\n  
\n# Code\n```\ndef findTheString(self, lcp: List[List[int]]) -> str:\n    n = len(lcp)\n    seq = [0] * n\n    letter = ord(\'a\')\n    lcp.append([0] * (n+1))\n    for i in range(0, n):\n        if not seq[i]:\n            for j in range(i, n):\n                if lcp[i][j]:\n                    seq[j] = letter\n            letter += 1\n    if letter > ord(\'z\') + 1:\n        return ""\n    for i in reversed(range(n)):\n        for j in range(i+1):\n            if not (lcp[i][j] == lcp[j][i] == (lcp[i+1][j+1] + 1 if seq[i] == seq[j] else 0)):\n                return ""\n    return \'\'.join([chr(i) for i in seq])\n```
['Python3']