字符串中第二大的数字【LC1796】
Given an alphanumeric string
s, return the second largest numerical digit that appears ins, or-1if it does not exist.An alphanumeric string is a string consisting of lowercase English letters and digits.
快快学完今天的,然后去做菜
-
思路:遍历字符串,使用变量记录字符串中第一大firstHfirstHfirstH和第二大的整数值secondHsecondHsecondH,当遇到一个整数numnumnum时进行判断
- 当num>firstHnum>firstHnum>firstH时,numnumnum即为当前数组第一大,firstHfirstHfirstH为第二大
- 当num<firstHnum<firstHnum<firstH并且num>secondHnum>secondHnum>secondH时,numnumnum即为当前数组第二大
- 注意:当num==firstHnum==firstHnum==firstH时,不做任何处理
-
实现
class Solution { public int secondHighest(String s) { int firstH = -1; int secondH = -1; for (char c : s.toCharArray()){ if (c >= '0' && c <= '9'){ int num = c -'0'; if (num > firstH) { secondH = firstH; firstH = num; }else if (num < firstH && num > secondH) { secondH = num; } } } return secondH; } }-
复杂度
- 时间复杂度:O(n)O(n)O(n)
- 空间复杂度:O(1)O(1)O(1)
-

本文介绍了一种方法,用于从包含字母和数字的字符串中找出第二大的数字。通过遍历字符串并使用两个变量记录最大和次大的数字,该算法能够有效解决问题。
675

被折叠的 条评论
为什么被折叠?



