code: def lcs(self, stringIdxs=-1):
          
          if stringIdxs == -1 or not isinstance(stringIdxs, list):
              stringIdxs = set(range(len(self.word_starts)))
          else:
              stringIdxs = set(stringIdxs)
  
          deepestNode = self._find_lcs(self.root, stringIdxs)
          start = deepestNode.idx
          end = deepestNode.idx + deepestNode.depth
          return self.word[start:end]
docs: Returns the Largest Common Substring of Strings provided in stringIdxs.
          If stringIdxs is not provided, the LCS of all strings is returned.
  
          ::param stringIdxs: Optional: List of indexes of strings.