Classic quick select algorithm in Python
Intuition\n Describe your first thoughts on how to solve this problem. \n\n# Approach\n Describe your approach to solving the problem. \n\n# Complexity\n- Time 
# Intuition\n<!-- Describe your first thoughts on how to solve this problem. -->\n\n# Approach\n<!-- Describe your approach to solving the problem. -->\n\n# Complexity\n- Time complexity: O(n), with the worst case O(n^2)\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity: O(n)\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```\nclass Solution:\n    def kthLargestNumber(self, nums: List[str], k: int) -> str:\n        \n        def _quick_select_(nums, k):\n            left, mid, right = [],[], []\n            pivot = random.choice(nums)\n\n            for num in nums:\n                if int(num) > int(pivot):\n                    left.append(num)\n                elif int(num) < int(pivot):\n                    right.append(num)\n                else:\n                    mid.append(num)\n            \n            if k <= len(left):\n                return _quick_select_(left, k)\n\n            if k > len(left) + len(mid):\n                return _quick_select_(right, k - len(left) - len(mid))\n\n            return pivot\n        \n        return _quick_select_(nums, k)\n```
['Python3']