Formatted question description: https://leetcode.ca/all/1903.html

1903. Largest Odd Number in String

Level

Easy

Description

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 <= 10^5
  • num only consists of digits and does not contain any leading zeros.

Solution

Any number that ends with an odd digit is an odd number. If a digit in num is an odd number, then the substring from index 0 to the current digit is ghe largest odd number that ends with the digit. Therefore, find the rightmost odd digit in nums, and return the substring from index 0 to the rightmost odd digit.

class Solution {
    public String largestOddNumber(String num) {
        for (int i = num.length() - 1; i >= 0; i--) {
            char c = num.charAt(i);
            int digit = c - '0';
            if (digit % 2 != 0)
                return num.substring(0, i + 1);
        }
        return "";
    }
}

All Problems

All Solutions