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);
}
}
}