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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)