1796.字符串中第二大的数字
# 给你一个混合字符串 s ,请你返回 s 中 第二大 的数字,如果不存在第二大的数字,请你返回 -1 。
# 混合字符串 由小写英文字母和数字组成。
class Solution(object):
def secondHighest(self, s):
"""
找到给定字符串中第二大的数字。如果不存在第二大的数字,则返回 -1。
:type s: str
:rtype: int
"""
# 将字符串转换为字符列表以便进一步处理
ls = list(s)
lst = []
# 遍历字符列表,查找并转换数字字符为整数,然后存储在另一个列表中
for char in ls:
if char.isdigit():
lst.append(int(char))
# 移除列表中的重复元素以找到唯一的数字
lst = list(set(lst))
# 如果找到的数字数量少于2个,返回 -1,因为无法找到第二大的数字
if len(lst) < 2:
return -1
else:
# 对数字列表进行排序以便有序访问
lst.sort()
# 如果列表中最后两个元素相等,说明没有唯一的第二大数字,返回 -1
if lst[-1] == lst[-2]:
return -1
else:
# 返回列表中的第二大数字
return lst[-2]