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.
class Solution:
def largestOddNumber(self, num: str) -> str:
for i in range(len(num) - 1, -1, -1):
if (int(num[i]) & 1) == 1:
return num[: i + 1]
return ''
class Solution {
public String largestOddNumber(String num) {
for (int i = num.length() - 1; i >= 0; --i) {
int c = num.charAt(i) - '0';
if ((c & 1) == 1) {
return num.substring(0, i + 1);
}
}
return "";
}
}
/**
* @param {string} num
* @return {string}
*/
var largestOddNumber = function (num) {
let n = num.length;
for (let j = n - 1; j >= 0; j--) {
if (num.charAt(j) & (1 == 1)) {
return num.slice(0, j + 1);
}
}
return '';
};
class Solution {
public:
string largestOddNumber(string num) {
for (int i = num.size() - 1; i >= 0; --i) {
int c = num[i] - '0';
if ((c & 1) == 1) {
return num.substr(0, i + 1);
}
}
return "";
}
};
func largestOddNumber(num string) string {
for i := len(num) - 1; i >= 0; i-- {
c := num[i] - '0'
if (c & 1) == 1 {
return num[:i+1]
}
}
return ""
}