題目連結:
題目意譯:
你被給定一字串 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] 串接而成。因此回傳該奇數即可。
如果過程中沒有遇到任何奇數位數,則就是代表沒有奇數。所以回傳 "" 。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。