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.

1903. Largest Odd Number in String
struct Solution;

impl Solution {
fn largest_odd_number(num: String) -> String {
let n = num.len();
let s: Vec<char> = num.chars().collect();
for i in (0..n).rev() {
if (s[i] as u8 - b'0') % 2 == 1 {
return s[0..=i].iter().collect();
}
}
"".to_string()
}
}

#[test]
fn test() {
let num = "52".to_string();
let res = "5".to_string();
assert_eq!(Solution::largest_odd_number(num), res);
let num = "4206".to_string();
let res = "".to_string();
assert_eq!(Solution::largest_odd_number(num), res);
let num = "35427".to_string();
let res = "35427".to_string();
assert_eq!(Solution::largest_odd_number(num), res);
}