Skip to content

1903. Largest Odd Number in String

You are given a string num, representing a large integer. Return the largest-valued odd integer (as a string) that is a non-empty substring of num, or an empty string "" if no odd integer exists.

A substring is a contiguous sequence of characters within a string.

Example 1:

Input: num = "52"
Output: "5"
Explanation: The only non-empty substrings are "5", "2", and "52". "5" is the only odd number.

Example 2:

Input: num = "4206"
Output: ""
Explanation: There are no odd numbers in "4206".

Example 3:

Input: num = "35427"
Output: "35427"
Explanation: "35427" is already an odd number.

Constraints:

  • 1 <= num.length <= 105
  • num only consists of digits and does not contain any leading zeros.

Solution:

class Solution {
    public String largestOddNumber(String num) {
        int len = num.length();
        while(len > 0){
            int cur = Integer.valueOf(num.charAt(len - 1));
            if (cur % 2 != 0){
                return num.substring(0, len);
            }else{
                len--;
            }
        }
        return "";
    }
}

// TC: O(n)
// SC: O(n)