前往
大廳
主題

LeetCode - 1903. Largest Odd Number in String 解題心得

Not In My Back Yard | 2021-09-30 00:00:05 | 巴幣 0 | 人氣 211

題目連結:


題目意譯:
你被給定一字串 num ,代表著一個大整數。回傳最大的奇數值(作為一字串)其為 num 的一個非空子字串,或是一個空字串 "" 如果沒有任何奇數存在。

一個子字串為一個字串中的連續字元序列。

限制:
1 ≦ num.length ≦ 10 ^ 5
num 只由數字組成且不含任何前導零。



範例測資:
範例 1:
輸入: num = "52"
輸出: "5"
解釋: 僅有的非空子字串為 "5" 、 "2" 和 "52" 。 "5" 為唯一的奇數。

範例 2:
輸入: num = "4206"
輸出: ""
解釋: "4206" 中沒有奇數。

範例 3:
輸入: num = "35427"
輸出: "35427"
解釋: "35427" 已經是一個奇數了。


解題思維:
(假設字串索引值從 0 開始)
我們可以從 num 的結尾往頭開始掃起。一旦我們遇到某一位數為奇數時(假設此時位於索引值 i),此時我們便找到了所求的最大奇數值,其由 num[0] ~ num[i] 串接而成。因此回傳該奇數即可。

如果過程中沒有遇到任何奇數位數,則就是代表沒有奇數。所以回傳 "" 。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作