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 仅由数字组成且不含前导零
代码展示
普通方法
思路
最大的奇数,也就是说我们只要保证末尾是奇数,就能保证整体都是奇数。
所以思路就很清晰了,找到最后一个奇数的位置,那么第一个字符到最后一个奇数的位置,所得到的字符串就是最大的奇数了。
解题方法
1、找到最后一个奇数位的下标
2、用substring()方法截取子字符串
class Solution {public String largestOddNumber(String num) {int index = -1;for(int i = 0;i<num.length();i++){if(num.charAt(i) % 2==1){index = i;}}if(index==-1){return "";}else{return num.substring(0,index+1);}}
}