Skip to main content
 首页 » 编程设计

python之如何返回包含数字和字母的字符串中的最大整数

2025年05月04日33傻小

对于这道题,我想返回与其他整数和字符串混合时最大的整数。当我测试我的代码时,我得到的答案是 319,而不是 51。谁能帮我解决这个问题?

测试用例:

>>>biggestBuried('abcd51kkk3kk19ghi') 
319 
 
 
def biggestBuried(s): 
    new_string = '' 
    biggest = 0 
    for num in s: 
        if num >= '0' and num <= '9': 
            new_string += num 
        else: 
            if not(num >= '0') and not(num <= '9'): 
                return 0 
            if new_string and int(new_string) > biggest: 
                biggest = int(new_string) 
                new_string = '' 
                if new_string and int(new_string) > biggest: 
                    biggest = int(new_string) 
    return biggest 

请您参考如下方法:

您的循环的问题在于,您仅在找到更大的数字时才设置 new_string = ''。每当您到达数字的末尾时,您都需要将其清空,即使它并不更大。

此外,当你到达结尾时,你需要检查 new_string 是否更大,以防字符串以数字结尾。我认为您正试图这样做,但缩进是错误的——它需要在 for 循环之外。

def biggestBuried(s): 
    new_string = '' 
    biggest = 0 
    for num in s: 
        if num.isnumeric(): 
            new_string += num 
        else: # We're at the end of a number 
            if new_string and int(new_string) > biggest: # Check if it's a bigger number 
                biggest = int(new_string) 
            new_string = '' # Start a new number 
    if new_string and int(new_string) > biggest: # Check if the final number is biggest 
        biggest = int(new_string) 
 
    return biggest