zl程序教程

您现在的位置是:首页 >  其他

当前栏目

LeetCode·每日一题·1796.字符串中第二大的数字·模拟

LeetCode模拟 字符串 数字 每日 第二
2023-09-27 14:26:29 时间

作者:小迅
链接:https://leetcode.cn/problems/second-largest-digit-in-a-string/solutions/2003798/mo-ni-zhu-shi-chao-ji-xiang-xi-by-xun-ge-mora/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 

题目

 

思路

给定一个字符串,返回字符串中第二大的数字

直接按照题目意思进行模拟,枚举数组每一个元素,判断是否为数字,再保存第二大的数字,注意不能存在重复数组

判断是否为更大值:

  • 当前元素是数字
  • 当前元素之前未被使用

代码


#define MAX(a, b) ((a) > (b) ? (a) : (b))

bool isValue(char s) //判断是否为数字
{
    if (s - '0' <= 9 && s - '0' >= 0) {
        return true;
    }
    return false;
}

int secondHighest(char * s){
    int len = strlen(s);
    int max1 = -1, max2 = -1;
    int hash[10] = {0};//记录数字使用情况
    for (int i = 0; i < len; ++i) {//枚举每一个元素
        if (isValue(s[i]) && hash[s[i] - '0'] == 0) {//是数组并且没有用过,才判断是否为更大值
            hash[s[i] - '0'] = 1;
            if (max1 < s[i] - '0') {
                max2 = max1;
                max1 = s[i] - '0';
            } else if (max2 < s[i] - '0'){
                max2 = s[i] - '0';
            }
        }
    }
    return max2;
}

作者:小迅
链接:https://leetcode.cn/problems/second-largest-digit-in-a-string/solutions/2003798/mo-ni-zhu-shi-chao-ji-xiang-xi-by-xun-ge-mora/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。