leetcode-python-1796字符串中第二大的数字

题目:

给你一个混合字符串 s ,请你返回 s 中 第二大 的数字,如果不存在第二大的数字,请你返回 -1 。

混合字符串 由小写英文字母和数字组成。

示例 1:

输入:s = "dfa12321afd"

输出:2

解释:出现在 s 中的数字包括 1, 2, 3 。第二大的数字是 2 。

示例 2:

输入:s = "abc1111"

输出:-1

解释:出现在 s 中的数字只包含 1 。没有第二大的数字。

提示:

1 <= s.length <= 500

s 只包含小写英文字母和(或)数字。

思路:

a.设定两个变量first和second,表示字符串中最大的数字和第二大的数字

b.遍历字符串,如果当前字符为数字,则判断是否大于first,若大于,则当前数字为最大数字,若当前数字大于second小于first,则当前数字为第二大的数字,其他情况则不操作。

c.返回second(即返回第二大数字)

解答:

python 复制代码
class Solution:
    def secondHighest(self, s: str) -> int:
        first = second = -1
        for item in s:
            if item.isdigit():
                num = int(item)
                if num > first:
                    second = first
                    first = num
                elif second < num < first:
                    second = num
        return second
相关推荐
罗西的思考2 分钟前
【轻量化复刻大模型】线性注意力交互式演示
人工智能·算法·机器学习
神也畏惧菠萝12 分钟前
Day08 Python流程控制从入门到上瘾:if/match/while/for四件套,从B站登录一路打到猜数字游戏
python·算法·数据存储·for·while·if·ifelse
言乐627 分钟前
通过 3D 动画直观演示球形瓶内可滑动半圆机构在倾倒时防粘盖、回正时刮膏体的运动学过程
python·3d·django·virtualenv·pygame
quantdash_cc33 分钟前
ETF 行情数据清洗实战:字段语义拆解、标的池整理与五个校验清单
python·数据分析·pandas·量化交易·股票数据·quantdash
揽星河..35 分钟前
【C语言】分支和循环
c语言·c++·算法
小熊恋旧35 分钟前
Python 面向对象编程:方法、属性、继承与多态详解
开发语言·python
威哥爱编程1 小时前
Python 智能体开发实战 05:一问教材内容它就编?先把答案从你自己的资料里检索出来
python·agent
java_prinln1 小时前
RAG 面试题介绍
python·agent
威哥爱编程1 小时前
Python 智能体开发实战 06:一个函数里塞了八百行?用状态机把批改流程拆成能回退的步骤
python·agent