1. ホーム
  2. python

[解決済み] リートコードの制限時間超過エラーの対処法

2022-03-01 07:14:31

質問

LeetCodeでLongest Common Prefixのコードを書きましたが、"Time Limit Exceeded"と返されました。

具体的なエラーメッセージがないので、私のコードをどのように修正すればテストケースを通過できるのか見当がつきません。

class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:

        #find the number of shortest characters
        shortest_num = 0
        nums = [0] * len(strs)
        for i in range(len(strs)):
            nums[i] = len(strs[i])
            shortest_num = min(nums)

        l1 = strs[0]
        l2 = strs[1]
        l3 = strs[2]


        for j in range(shortest_num):
            tmp = ""
            while l1[j] == l2[j] and l2[j] == l3[j]:
                tmp += l1[j]
            candidate.append(tmp)

        print(max(candidate))

エラーメッセージ

Time Limit Exceeded

解決方法は?

常にリスト内包を使用する方が高速です。 たとえば、文字列の長さのリストを取得するには次のようにします。

lens = [len(x) for x in strs]
min_len = min(lens)