from typing import List

# URL:
# https://leetcode.com/problems/reorder-data-in-log-files/

# Question:
# You have an array of logs.  Each log is a space delimited string of words.
# For each log, the first word in each log is an alphanumeric identifier.  Then, either:

# Each word after the identifier will consist only of lowercase letters, or
# Each word after the identifier will consist only of digits.

# We will call these two varieties of logs letter-logs and digit-logs.
# It is guaranteed that each log has at least one word after its identifier.

# Reorder the logs so that all of the letter-logs come before any digit-log.  
# The letter-logs are ordered lexicographically ignoring identifier, 
# with the identifier used in case of ties.  
# The digit-logs should be put in their original order.

# Return the final order of the logs.

class ValidPalindrome:
    @classmethod
    def reorderLogFiles(cls, logs: List[str]) -> List[str]:
            letters, digits = [],[]
            for log in logs:
                if log.split()[1].isdigit():
                    digits.append(log)
                else:
                    letters.append(log)
            
            letters.sort(key = lambda x: (x.split()[1:], x.split()[0]))
            return letters + digits

def main(argv):
    # Answer for number #1
            
if __name__ == "__main__":
    main()