C++ LeetCode1796字符串中第二大數(shù)字
LeetCode 1796.字符串中第二大的數(shù)字
力扣題目鏈接:leetcode.cn/problems/se…
給你一個混合字符串 s ,請你返回 s 中 第二大 的數(shù)字,如果不存在第二大的數(shù)字,請你返回 -1 。
混合字符串 由小寫英文字母和數(shù)字組成。
示例 1:
輸入:s = "dfa12321afd"
輸出:2
解釋:出現(xiàn)在 s 中的數(shù)字包括 [1, 2, 3] 。第二大的數(shù)字是 2 。
示例 2:
輸入:s = "abc1111"
輸出:-1
解釋:出現(xiàn)在 s 中的數(shù)字只包含 [1] 。沒有第二大的數(shù)字。
提示:
1 <= s.length <= 500s只包含小寫英文字母和(或)數(shù)字。
方法一:遍歷
題目分析
題目中說的“第二大”數(shù)字,到底什么是第二大?英文原文是“Second largest”
也就是說,是從大到小第二個數(shù),不是從小到大第二個數(shù)。
樣例中“123”,不論是從小到大還是從大到小都是“2”,不如把樣例換成“1234”,這樣答案是“3”,就一目了然了。
解題思路
首先開辟一個大小為“10”的布爾數(shù)組,初始值為false
接著遍歷字符串,如果字符串的某個字符是數(shù)字,那么就將對應(yīng)的那個布爾值標(biāo)記為true
接著,用一個變量foundFirst來記錄是否已經(jīng)找到了最大值,初始值為false
從9到0遍歷布爾數(shù)組,如果遇到某個值為true,就看foundFirst是否已經(jīng)為true
- 如果為
true,就返回當(dāng)前的對應(yīng)元素 - 否則,將
foundFirst標(biāo)記為true
若遍歷結(jié)束后仍未找到“第二大數(shù)”,那么就返回-1
復(fù)雜度分析
- 時間復(fù)雜度O(len(s))
- 空間復(fù)雜度O(C),這里C=10,也可以理解為O(1)
AC代碼
C++
class Solution {
public:
int secondHighest(string& s) {
bool bin[10] = {false};
for (char c : s) {
if (c >= '0' && c <= '9')
bin[c - '0'] = true;
}
bool foundFirst = false;
for (int i = 9; i >= 0; i--) {
if (bin[i]) {
if (foundFirst) {
return i;
}
else {
foundFirst = true;
}
}
}
return -1;
}
};以上就是C++ LeetCode1796字符串中第二大數(shù)字的詳細(xì)內(nèi)容,更多關(guān)于C++ 字符串第二大數(shù)字示例的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用C++和Direct3D (d3d)獲取屏幕截圖并根據(jù)傳入分辨率進(jìn)行縮放圖片大小(最新推薦)
這篇文章主要介紹了使用C++和Direct3D (d3d)獲取屏幕截圖并根據(jù)傳入分辨率進(jìn)行縮放圖片大小,本文給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04
C語言實(shí)現(xiàn)字符串字符反向排列的方法詳解
這篇文章主要為大家分享了幾種通過C語言實(shí)現(xiàn)字符串字符反向排列(不是逆序打?。┑姆椒?,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-05-05
C++實(shí)現(xiàn)學(xué)生管理系統(tǒng)示例解析
這篇文章主要介紹了C++實(shí)現(xiàn)學(xué)生管理系統(tǒng)示例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
C++詳細(xì)講解繼承與虛繼承實(shí)現(xiàn)
這篇文章主要介紹了Java中的繼承詳情,繼承是面向?qū)ο笕筇卣髦?,可以使得子類具有父類的屬性和方法,還可以在子類中重新定義,以及追加屬性和方法,下文介紹需要的朋友可以參考下2022-04-04
QT的QWebEngineView類知識點(diǎn)詳細(xì)介紹
QWebEngineView是Qt框架中的組件,基于Chromium內(nèi)核,支持HTML5、CSS3、JavaScript等Web技術(shù),適用于嵌入網(wǎng)頁內(nèi)容到Qt應(yīng)用程序,它提供了豐富的接口如加載、導(dǎo)航、與JavaScript交互等,并支持信號槽機(jī)制處理各種網(wǎng)頁事件,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-10-10

