| 模型 | 模型答案 | 正确答案 |
|---|---|---|
| 金声玉亮2.0 | ``` if curr[2] >= 3: result = max(result, curr[2]) cnt = 0 return result if result else -1 ``` |
class Solution(object): def maximumLength(self, s): """ :type s: str :rtype: int """ lookup = [[0]*3 for _ in range(26)] result = cnt = 0 for i, c in enumerate(s): cnt += 1 if i+1 != len(s) and s[i+1] == s[i]: continue curr = lookup[ord(c)-ord('a')] for j in range(len(curr)): if curr[j] < cnt: cnt, curr[j] = curr[j], cnt cnt = 0 result = max(result, max(curr[0]-2, min(curr[0]-1, curr[1]), curr[2])) return result if result else -1 |
| deepseek-r1 | ```python max_len = -1 for entry in lookup: a, b, c = entry if a == 0: continue for l in range(a, 0, -1): total = 0 for run in entry: if run >= l: total += run - l + 1 if total >= 3: if l > max_len: max_len = l break return max_len if max_len != -1 else -1 ``` |
class Solution(object): def maximumLength(self, s): """ :type s: str :rtype: int """ lookup = [[0]*3 for _ in range(26)] result = cnt = 0 for i, c in enumerate(s): cnt += 1 if i+1 != len(s) and s[i+1] == s[i]: continue curr = lookup[ord(c)-ord('a')] for j in range(len(curr)): if curr[j] < cnt: cnt, curr[j] = curr[j], cnt cnt = 0 result = max(result, max(curr[0]-2, min(curr[0]-1, curr[1]), curr[2])) return result if result else -1 |
| gpto1 | ```python for curr in lookup: if curr[2] > 0: result = max(result, curr[2]) return result if result > 0 else -1 ``` |
class Solution(object): def maximumLength(self, s): """ :type s: str :rtype: int """ lookup = [[0]*3 for _ in range(26)] result = cnt = 0 for i, c in enumerate(s): cnt += 1 if i+1 != len(s) and s[i+1] == s[i]: continue curr = lookup[ord(c)-ord('a')] for j in range(len(curr)): if curr[j] < cnt: cnt, curr[j] = curr[j], cnt cnt = 0 result = max(result, max(curr[0]-2, min(curr[0]-1, curr[1]), curr[2])) return result if result else -1 |
| gpt-4o-2024-08-06 | ```python break if curr[2] >= 3: result = max(result, cnt) cnt = 0 return result if result > 0 else -1 ``` |
class Solution(object): def maximumLength(self, s): """ :type s: str :rtype: int """ lookup = [[0]*3 for _ in range(26)] result = cnt = 0 for i, c in enumerate(s): cnt += 1 if i+1 != len(s) and s[i+1] == s[i]: continue curr = lookup[ord(c)-ord('a')] for j in range(len(curr)): if curr[j] < cnt: cnt, curr[j] = curr[j], cnt cnt = 0 result = max(result, max(curr[0]-2, min(curr[0]-1, curr[1]), curr[2])) return result if result else -1 |
| Meta-Llama-3.1-405B-Instruct-Turbo | ```python cnt = 0 for i in range(26): if lookup[i][0] == lookup[i][1] == lookup[i][2]: result = max(result, lookup[i][0]) return result if result > 0 else -1 ``` |
class Solution(object): def maximumLength(self, s): """ :type s: str :rtype: int """ lookup = [[0]*3 for _ in range(26)] result = cnt = 0 for i, c in enumerate(s): cnt += 1 if i+1 != len(s) and s[i+1] == s[i]: continue curr = lookup[ord(c)-ord('a')] for j in range(len(curr)): if curr[j] < cnt: cnt, curr[j] = curr[j], cnt cnt = 0 result = max(result, max(curr[0]-2, min(curr[0]-1, curr[1]), curr[2])) return result if result else -1 |
| Meta-Llama-3.1-70B-Instruct-Turbo | ```python result = max(result, min(curr)) return result if result >= 3 else -1 ``` |
class Solution(object): def maximumLength(self, s): """ :type s: str :rtype: int """ lookup = [[0]*3 for _ in range(26)] result = cnt = 0 for i, c in enumerate(s): cnt += 1 if i+1 != len(s) and s[i+1] == s[i]: continue curr = lookup[ord(c)-ord('a')] for j in range(len(curr)): if curr[j] < cnt: cnt, curr[j] = curr[j], cnt cnt = 0 result = max(result, max(curr[0]-2, min(curr[0]-1, curr[1]), curr[2])) return result if result else -1 |
| DeepSeek-Coder-V2-Lite-Instruct | ```python break for j in range(len(curr)): if curr[j] < cnt: cnt, curr[j] = curr[j], cnt cnt = 0 for j in range(len(curr)): if curr[j] > 0: result = max(result, curr[j]) return result if result >= 3 else -1 ``` |
class Solution(object): def maximumLength(self, s): """ :type s: str :rtype: int """ lookup = [[0]*3 for _ in range(26)] result = cnt = 0 for i, c in enumerate(s): cnt += 1 if i+1 != len(s) and s[i+1] == s[i]: continue curr = lookup[ord(c)-ord('a')] for j in range(len(curr)): if curr[j] < cnt: cnt, curr[j] = curr[j], cnt cnt = 0 result = max(result, max(curr[0]-2, min(curr[0]-1, curr[1]), curr[2])) return result if result else -1 |
| Qwen2-72B-Instruct | ```python result = max(result, min(curr)) return result if result >= 3 else -1 ``` |
class Solution(object): def maximumLength(self, s): """ :type s: str :rtype: int """ lookup = [[0]*3 for _ in range(26)] result = cnt = 0 for i, c in enumerate(s): cnt += 1 if i+1 != len(s) and s[i+1] == s[i]: continue curr = lookup[ord(c)-ord('a')] for j in range(len(curr)): if curr[j] < cnt: cnt, curr[j] = curr[j], cnt cnt = 0 result = max(result, max(curr[0]-2, min(curr[0]-1, curr[1]), curr[2])) return result if result else -1 |
| baichuan4 | ```python break if cnt > result: result = cnt cnt = 0 # Reset the lookup table for the next character for row in lookup: for j in range(len(row)): row[j] = 0 # If the current character has already appeared twice, we need to check if it can be a special substring if i >= 2 and s[i] == s[i-1] == s[i-2]: lookup[ord(s[i])-ord('a')][0] = 3 # Update the lookup table for the current character lookup[ord(c)-ord('a')][1] = 1 # Check if the current character has appeared before if i > 0 and s[i] == s[i-1]: lookup[ord(s[i])-ord('a')][2] = 1 # Check if the current character has appeared twice before if i > 1 and s[i] == s[i-1] == s[i-2]: lookup[ord(s[i])-ord('a')][2] = 2 # Check if the current character has appeared thrice before if i > 2 and s[i] == s[i-1] == s[i-2] == s[i-3]: lookup[ord(s[i])-ord('a')][2] = 3 # Check if the current character has appeared four times before if i > 3 and s[i] == s[i-1] == s[i-2] == s[i-3] == s[i-4]: lookup[ord(s[i])-ord('a')][2] = 4 # Check if the current character has appeared five times before if i > 4 and s[i] == s[i-1] == s[i-2] == s[i-3] == s[i-4] == s[i-5]: lookup[ord(s[i])-ord('a')][2] = 5 # Check if the current character has appeared six times before if i > 5 and s[i] == s[i-1] == s[i-2] == s[i-3] == s[i-4] == s[i-5] == s[i-6]: lookup[ord(s[i])-ord('a')][2] = 6 # Check if the current character has appeared seven times before if i > 6 and s[i] == s[i-1] == s[i-2] == s[i-3] == s[i-4] == s[i-5] == s[i-6] == s[i-7]: lookup[ord(s[i])-ord('a')][2] = 7 # Check if the current character has appeared eight times before if i > 7 and s[i] == s[i-1] == s[i-2] == s[i-3] == s[i-4] == s[i-5] == s[i-6] == s[i-7] == s[i-8]: lookup[ord(s[i])-ord('a')][2] = 8 # Check if the current character has appeared nine times before if i > 8 and s[i] == s[i-1] == s[i-2] == s[i-3] == s[i-4] == s[i-5] == s[i-6] == s[i-7] == s[i-8] == s[i-9]: lookup[ord(s[i])-ord('a')][2] = 9 # Check if the current character has appeared ten times before if i > 9 and s[i] == s[i-1] == s[i-2] == s[i-3] == s[i-4] == s[i-5] == s[i-6] == s[i-7] == s[i-8] == s[i-9] == s[i-10]: lookup[ord(s[i])-ord('a')][2] = 10 # Check if the current character has appeared eleven times before if i > 10 and s[i] == s[i-1] == s[i-2] == s[i-3] == s[i-4] == s[i-5] == s[i-6] == s[i-7] == s[i-8] == s[i-9] == s[i-10] == s[i-11]: lookup[ord(s[i])-ord('a')][2] = 11 # Check if the current character has appeared twelve times before if i > 11 and s[i] == s[i-1] == s[i-2] == s[i-3] == s[i-4] == s[i-5] == s[i-6] == s[i-7] == s[i-8] == s[i-9] == s[i-10] == s[i-11] == s[i-12]: lookup[ord(s[i])-ord('a')][2] = 12 # Check if the current character has appeared thirteen times before if i > 12 and s[i] == s[i-1] == s[i-2] == s[i-3] == s[i-4] == s[i-5] == s[i-6] == s[i-7] == s[i-8] == s[i-9] == s[i-10] == s[i-11] == s[i-12] == s[i-13]: lookup[ord(s[i])-ord('a')][2] = 13 # Check if the current character has appeared fourteen times before if i > 13 and s[i] == s[i-1] == s[i-2] == s[i-3] == s[i-4] == s[i-5] == s[i-6] == s[i-7] == s[i-8] == s[i-9] == s[i-10] == s[i-11] == s[i-12] == s[i-13] == s[i-14]: lookup[ord(s[i])-ord('a')][2] = 14 # Check if the current character has appeared fifteen times before if i > 14 and s[i] == s[i-1] == s[i-2] == s[i-3] == s[i-4] == s[i-5] == s[i-6] == s[i-7] == s[i-8] == s[i-9] == s[i-10] == s[i-11] == s[i-12] == s[i-13] == s[i-14] == s[i-15]: lookup[ord(s[i])-ord('a')][2] = 15 |
class Solution(object): def maximumLength(self, s): """ :type s: str :rtype: int """ lookup = [[0]*3 for _ in range(26)] result = cnt = 0 for i, c in enumerate(s): cnt += 1 if i+1 != len(s) and s[i+1] == s[i]: continue curr = lookup[ord(c)-ord('a')] for j in range(len(curr)): if curr[j] < cnt: cnt, curr[j] = curr[j], cnt cnt = 0 result = max(result, max(curr[0]-2, min(curr[0]-1, curr[1]), curr[2])) return result if result else -1 |
| doubao | ```python result = max(result, min(cnt, 3)) cnt = 0 return result if result > 0 else -1 ``` |
class Solution(object): def maximumLength(self, s): """ :type s: str :rtype: int """ lookup = [[0]*3 for _ in range(26)] result = cnt = 0 for i, c in enumerate(s): cnt += 1 if i+1 != len(s) and s[i+1] == s[i]: continue curr = lookup[ord(c)-ord('a')] for j in range(len(curr)): if curr[j] < cnt: cnt, curr[j] = curr[j], cnt cnt = 0 result = max(result, max(curr[0]-2, min(curr[0]-1, curr[1]), curr[2])) return result if result else -1 |
| gpto1 | ```python for curr in lookup: if curr[2] > 0: result = max(result, curr[2]) return result if result > 0 else -1 ``` |
class Solution(object): def maximumLength(self, s): """ :type s: str :rtype: int """ lookup = [[0]*3 for _ in range(26)] result = cnt = 0 for i, c in enumerate(s): cnt += 1 if i+1 != len(s) and s[i+1] == s[i]: continue curr = lookup[ord(c)-ord('a')] for j in range(len(curr)): if curr[j] < cnt: cnt, curr[j] = curr[j], cnt cnt = 0 result = max(result, max(curr[0]-2, min(curr[0]-1, curr[1]), curr[2])) return result if result else -1 |
| kimi | ```python lookup[ord(c)-ord('a')] = [0]*3 cnt = 0 for i in range(26): for j in range(3): if lookup[i][j] >= 3: result = max(result, j+1) return result if result > 0 else -1 ``` |
class Solution(object): def maximumLength(self, s): """ :type s: str :rtype: int """ lookup = [[0]*3 for _ in range(26)] result = cnt = 0 for i, c in enumerate(s): cnt += 1 if i+1 != len(s) and s[i+1] == s[i]: continue curr = lookup[ord(c)-ord('a')] for j in range(len(curr)): if curr[j] < cnt: cnt, curr[j] = curr[j], cnt cnt = 0 result = max(result, max(curr[0]-2, min(curr[0]-1, curr[1]), curr[2])) return result if result else -1 |
| minimax | ```python class Solution(object): def maximumLength(self, s): """ :type s: str :rtype: int """ lookup = [[0]*3 for _ in range(26)] result = cnt = 0 for i, c in enumerate(s): cnt += 1 if i+1 != len(s) and s[i+1] == s[i]: continue curr = lookup[ord(c)-ord('a')] for j in range(len(curr)): if curr[j] < cnt: cnt, curr[j] = curr[j], cnt if cnt >= 3: result = max(result, i - curr[0] + 1) curr[2] = curr[1] curr[1] = curr[0] curr[0] = cnt return result if result > 0 else -1 ``` |
class Solution(object): def maximumLength(self, s): """ :type s: str :rtype: int """ lookup = [[0]*3 for _ in range(26)] result = cnt = 0 for i, c in enumerate(s): cnt += 1 if i+1 != len(s) and s[i+1] == s[i]: continue curr = lookup[ord(c)-ord('a')] for j in range(len(curr)): if curr[j] < cnt: cnt, curr[j] = curr[j], cnt cnt = 0 result = max(result, max(curr[0]-2, min(curr[0]-1, curr[1]), curr[2])) return result if result else -1 |
| wenxinyiyan | ```python if curr[0] != 0 and curr[1] != 0 and curr[0] == curr[1] and curr[1] == cnt: result = max(result, cnt) cnt = 0 if result < 3: return -1 return result ``` ### Explanation: The provided starter code initializes a 2D list `lookup` to keep track of the counts of contiguous characters for each lowercase letter. The outer loop iterates through the string `s`, and the variable `cnt` is used to count the number of contiguous characters. However, the starter code is incomplete and does not handle the logic for checking if a special substring occurs at least thrice. To complete the solution, we need to add the following steps: 1. After the inner loop updates the counts in `curr`, we check if the first two counts (`curr[0]` and `curr[1]`) are non-zero and equal to each other, and also equal to the current count (`cnt`). This condition ensures that we have found a special substring that occurs at least thrice. 2. If the above condition is satisfied, we update the `result` variable with the maximum value between its current value and the current count (`cnt`). This step keeps track of the length of the longest special substring found so far. 3. Finally, after the outer loop completes, we check if the `result` is less than 3. If it is, it means no special substring occurs at least thrice, so we return -1. Otherwise, we return the `result`. Note: The indentation of the code provided in the answer section should match the indentation of the starter code for a correct and working solution. |
class Solution(object): def maximumLength(self, s): """ :type s: str :rtype: int """ lookup = [[0]*3 for _ in range(26)] result = cnt = 0 for i, c in enumerate(s): cnt += 1 if i+1 != len(s) and s[i+1] == s[i]: continue curr = lookup[ord(c)-ord('a')] for j in range(len(curr)): if curr[j] < cnt: cnt, curr[j] = curr[j], cnt cnt = 0 result = max(result, max(curr[0]-2, min(curr[0]-1, curr[1]), curr[2])) return result if result else -1 |
| zhipu | ``` result = max(result, min(curr)) cnt = 0 return result if result > 0 else -1 ``` |
class Solution(object): def maximumLength(self, s): """ :type s: str :rtype: int """ lookup = [[0]*3 for _ in range(26)] result = cnt = 0 for i, c in enumerate(s): cnt += 1 if i+1 != len(s) and s[i+1] == s[i]: continue curr = lookup[ord(c)-ord('a')] for j in range(len(curr)): if curr[j] < cnt: cnt, curr[j] = curr[j], cnt cnt = 0 result = max(result, max(curr[0]-2, min(curr[0]-1, curr[1]), curr[2])) return result if result else -1 |
| deepseek-v3 | ```python if cnt >= curr[0]: curr[2] = curr[1] curr[1] = curr[0] curr[0] = cnt elif cnt >= curr[1]: curr[2] = curr[1] curr[1] = cnt elif cnt >= curr[2]: curr[2] = cnt cnt = 0 for i in range(26): if lookup[i][2] > result: result = lookup[i][2] return result if result > 0 else -1 ``` |
class Solution(object): def maximumLength(self, s): """ :type s: str :rtype: int """ lookup = [[0]*3 for _ in range(26)] result = cnt = 0 for i, c in enumerate(s): cnt += 1 if i+1 != len(s) and s[i+1] == s[i]: continue curr = lookup[ord(c)-ord('a')] for j in range(len(curr)): if curr[j] < cnt: cnt, curr[j] = curr[j], cnt cnt = 0 result = max(result, max(curr[0]-2, min(curr[0]-1, curr[1]), curr[2])) return result if result else -1 |