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
相关推荐
小小小CTFER6 小时前
正则表达式
python
WSSWWWSSW7 小时前
Python OpenCV图像处理与深度学习:Python OpenCV图像滤波入门
图像处理·python·opencv
_不会dp不改名_7 小时前
leetcode_74 搜索二维矩阵
算法·leetcode·矩阵
hansang_IR7 小时前
【题解 | 两种做法】洛谷 P4208 [JSOI2008] 最小生成树计数 [矩阵树/枚举]
c++·算法·dfs·题解·枚举·最小生成树·矩阵树定理
补三补四7 小时前
贝叶斯向量自回归模型 (BVAR)
android·算法·数据挖掘·数据分析·回归
二闹7 小时前
告别程序崩溃!Python异常处理的正确打开方式
后端·python
keeper_zdl7 小时前
GitLabCI/CD自动化构建与联调实战
python·架构
幂简集成explinks7 小时前
GPT-Realtime 弹幕TTS API:低延迟秒开集成实战
人工智能·后端·算法
mit6.8248 小时前
[awesome-nlp] docs | 精选NLP资源 | 分类
python·自然语言处理