leetcode 1796

leetcode 1796,第1张

1796. 字符串中第二大的数字

难度简单9收藏分享切换为英文接收动态反馈

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

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

示例 1:

输入:s = "dfa12321afd"
输出:2
解释:出现在 s 中的数字包括 [1, 2, 3] 。第二大的数字是 2 。

示例 2:

输入:s = "abc1111"
输出:-1
解释:出现在 s 中的数字只包含 [1] 。没有第二大的数字。

提示:

  • 1 <= s.length <= 500
  • s 只包含小写英文字母和(或)数字。

通过次数9,122提交次数18,661

题解:找到数字,数字数组排序,排序的时候消除重复项,找到第二个大的,返回,找不到返回-1。

class Solution {
public:
    int secondHighest(string s) {
        vector tem;
        for(auto &i:s)
        {
            if(i>='0' && i<='9')
            {
                tem.push_back(i-'0');
            }
        }
        if(tem.size()==0 || tem.size()==1)
            return -1;
        sort(tem.begin(),tem.end());
        tem.erase(unique(tem.begin(),tem.end()),tem.end());
        if(tem.size()==1)
            return -1;
        else
            return tem[tem.size()-2];
    }
};

执行结果:

通过

显示详情

添加备注

执行用时:4 ms, 在所有 C++ 提交中击败了68.58%的用户

内存消耗:7.1 MB, 在所有 C++ 提交中击败了9.06%的用户

通过测试用例:301 / 301

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/676521.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-19
下一篇 2022-04-19

发表评论

登录后才能评论

评论列表(0条)

保存