[Python3] 3 approaches
\nPlease see this commit for solutions of weekly 256.\n\nApproach 1 -- sorting O(NlogN)\n\nclass Solution:\n    def kthLargestNumber(self, nums: List[str], k: i
\nPlease see this [commit](https://github.com/gaosanyong/leetcode/commit/7abfd85d1a68e375fcc0be60558909fd98b270f3) for solutions of weekly 256.\n\n**Approach 1 -- sorting O(NlogN)**\n```\nclass Solution:\n    def kthLargestNumber(self, nums: List[str], k: int) -> str:\n        return sorted(nums, key=int)[-k]\n```\n\n**Approach 2 -- priority queue O(NlogK)**\n```\nclass Solution:\n    def kthLargestNumber(self, nums: List[str], k: int) -> str:\n        pq = [] # min-heap \n        for x in nums: \n            heappush(pq, int(x))\n            if len(pq) > k: heappop(pq)\n        return str(pq[0])\n```\n\n**Approach 3 -- quick select**\n```\nclass Solution:\n    def kthLargestNumber(self, nums: List[str], k: int) -> str:\n        nums = [int(x) for x in nums]\n        shuffle(nums)\n        \n        def part(lo, hi): \n            """Return partition of nums[lo:hi]."""\n            i, j = lo+1, hi-1\n            while i <= j: \n                if nums[i] < nums[lo]: i += 1\n                elif nums[lo] < nums[j]: j -= 1\n                else: \n                    nums[i], nums[j] = nums[j], nums[i]\n                    i += 1\n                    j -= 1\n            nums[lo], nums[j] = nums[j], nums[lo]\n            return j \n        \n        lo, hi = 0, len(nums)\n        while lo < hi: \n            mid = part(lo, hi)\n            if mid == len(nums)-k: return str(nums[mid])\n            elif mid < len(nums)-k: lo = mid + 1\n            else: hi = mid\n```
['Python3']