📅  最后修改于: 2023-12-03 14:54:36.009000             🧑  作者: Mango
给定一个字符串 S,找到 S 中的一个最大的偶数整数,它是 S 的非空子串。
我们从字符串的右端开始找起,找到第一个偶数,如果找到,则直接输出,否则继续往前找,直到字符串的开头。当我们找到第一个偶数时,我们只需要判断这个偶数是否是 S 的一个子串即可。
以下是 Python 代码实现,时间复杂度为 $O(n)$:
def largest_even_substring(S: str) -> str:
for i in range(len(S) - 1, -1, -1):
if int(S[i]) % 2 == 0:
return S[:i+1]
return ""
样例 1:
输入:S = "123456"
输出:"6"
样例 2:
输入:S = "12345"
输出:""
本题考查了字符串的遍历和判断,需要注意的是字符串的下标从右往左开始。同时,我们需要注意空串的情况,如果没有找到偶数,我们需要输出一个空串。