넘치게 채우기

[Leetcode] 1903. Largest Odd Number in String 본문

PS/LeetCode

[Leetcode] 1903. Largest Odd Number in String

riveroverflow 2023. 12. 7. 12:07
728x90
반응형

https://leetcode.com/problems/largest-odd-number-in-string/description/

 

Largest Odd Number in String - LeetCode

Can you solve this real interview question? 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 i

leetcode.com

leetcode - Largest Odd Number in String

문제 유형 : 문자열 처리 / 수학

문제 난이도 : Easy

 

문제

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.

 

당신은 문자열 num을 받는다. 이는 큰 정수를 담고 있다.

이 문자열의 부분 문자열로 만들 수 있는 가장 큰 홀수를 구하시오.

 

 

풀이

문자열의 부분 문자열로 만들 수 있는 가장 큰 홀수를 구하는 방법은 다음과 같다:

홀수는 일의 자릿수만 홀수이면 되기 때문에, 맨 뒤에서부터 역방향으로 탐색을 시작한다.

만약 그 숫자가 홀수이면, 인덱스0부터 거기까지 자르면 가장 큰 부분 문자열 홀수이다.

자릿수만 많으면 그만이기 때문에, 가장 큰 자릿수를 가지게만 하고, 홀수이면 그만이다.

 

 

코드

C++

static const int __ = []() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    return 0;
}();

class Solution {
public:
    string largestOddNumber(string num) {
        const int n = num.size();
        for(int i = n-1; i >=0 ; i--) {
            if((num[i]-'0') % 2 == 1) {
                return num.substr(0, i+1);
            }
        }

        return "";
    }
};

 

728x90
반응형