LeetCode简单题之字符串中的最大奇数
生活随笔
收集整理的這篇文章主要介紹了
LeetCode简单题之字符串中的最大奇数
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目
給你一個(gè)字符串 num ,表示一個(gè)大整數(shù)。請你在字符串 num 的所有 非空子字符串 中找出 值最大的奇數(shù) ,并以字符串形式返回。如果不存在奇數(shù),則返回一個(gè)空字符串 “” 。
子字符串 是字符串中的一個(gè)連續(xù)的字符序列。
示例 1:
輸入:num = “52”
輸出:“5”
解釋:非空子字符串僅有 “5”、“2” 和 “52” 。“5” 是其中唯一的奇數(shù)。
示例 2:
輸入:num = “4206”
輸出:""
解釋:在 “4206” 中不存在奇數(shù)。
示例 3:
輸入:num = “35427”
輸出:“35427”
解釋:“35427” 本身就是一個(gè)奇數(shù)。
提示:
1 <= num.length <= 10^5
num 僅由數(shù)字組成且不含前導(dǎo)零
來源:力扣(LeetCode)
解題思路
??最大的奇數(shù)一定是最“長”的數(shù),這個(gè)數(shù)應(yīng)該符合個(gè)位為奇數(shù)然后最高位不為0,所以我們可以定義兩個(gè)指針分別從前面判斷是否是0,從后邊判斷是否是1,3,5,7,9,然后返回最長的數(shù)即可。
class Solution:def largestOddNumber(self, num: str) -> str:i=0j=len(num)-1while int(num[j])%2==0 and j>=i: #從后邊尋找個(gè)位數(shù)j-=1while int(num[i])==0 and i<j: #從前面尋找不為0的數(shù)i+=1return num[i:j+1]
總結(jié)
以上是生活随笔為你收集整理的LeetCode简单题之字符串中的最大奇数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode简单题之唯一元素的和
- 下一篇: LeetCode简单题之猜数字大小