当前位置: 首页 >文章 > 字符串中的奇数
收藏
分享

字符串中的奇数

举报小虎转载君小虎转载君发布于 2021-07-181086阅读0点赞
子字符串是字符串中的一个连续的字符序列。...

If you want to understand today , you have to search yesterday.

如果你想参透今天,就必须探究昨天。

问题描述

来源:LeetCode第1903题

难度:
简单

给你一个字符串num,表示一个大整数。请你在字符串num的所有非空子字符串中找出值最大的奇数,并以字符串形式返回。如果不存在奇数,则返回一个空字符串""。

子字符串是字符串中的一个连续的字符序列。

示例 1

输入:num = "52"

输出:"5"

解释:
非空子字符串仅有 "5"、"2" 和 "52" 。"5" 是其中唯一的奇数。

示例 2:

输入:
num = "4206"

输出:""

解释:
在 "4206" 中不存在奇数。

示例 3:


输入:num = "35427"

输出:
"35427"

解释:
"35427" 本身就是一个奇数。

提示:

1 <= num.length <= 10^5

num 仅由数字组成且不含前导零

问题分析

这题是让在字符串num的所有非空子串中找出最大的奇数。我们知道只有个位数是奇数(比如1,3,5,7,9),这个数才可能是奇数,如果个位数是偶数,前面无论怎么截取,最终还是偶数。所以如果想把一个数字变为奇数,唯一能改变的就是他的个位数,所以这题思路就很简单了

先判断字符串num最右边的数字是否是奇数:

如果是奇数直接返回

如果不是奇数在判断他的倒数第2位是不是奇数,如果是奇数就从前面截取,如果不是就继续判断倒数第3位……

看下代码


时间复杂度:O(n),n是字符串的长度,最差情况下都是偶数,遍历所有字符。

空间复杂度:O(1)。


本文原创,未经作者允许不可转载!
更多内容,欢迎关注作者微信公众号:数据结构和算法!


0条评论
别默默看啦~登录/注册一起参与讨论吧~

暂无评论

请选择举报理由

违反法律法规

侵犯个人权益

有害网站环境

更多训练营>>

为你推荐 · 训练营(全勤打卡报名费全额返累计全额返用户133,746人)

【6月】7天轻松入门C4D小练习
距离开班仅剩19天36人已报名
【6月】人像后期案例实操训练营
距离开班仅剩27天30人已报名
【7月】7天轻松入门C4D小练习
距离开班仅剩39天0人已报名
特惠
充值
7折购
今日还在继续学习的你,太棒了!
7
折扣券可用于
年费无限VIP
立 即
使 用
此活动优惠不可与其他活动叠加使用
有效期:000000
消息
登录即可查看消息记录
建议
意见
官方
客服
在线咨询客服热线

您可以与在线客服进行沟通获得帮助

工作日:9:00~22:00节假日:9:00~18:00

联系在线客服

您可以电话联系客服进行沟通获得帮助

工作日:9:30~18:30

400-862-9191
虎课
积分
免费学习90000+个教程!
配套素材、源文件一键下载!
昨日学员已学习了41,188
并提交了148份作业!
登录后立即学习!
loading
微信扫码关注即可登录
您需要同意协议才可以进行登录
登录虎课网,每天免费学课程全站 90000+ 视频会员教程 | 每日可免费学 1
为确保账户信息安全
请先进行真实姓名验证后进行充值付款
立即验证