<Hard> Valid Number (LeetCode : C#)

이도희·2023년 3월 29일
0

알고리즘 문제 풀이

목록 보기
45/185

https://leetcode.com/problems/valid-number/

📕 문제 설명

주어진 숫자가 decimal number 또는 integer인지 판단하기

Optional) 'e' 또는 'E'가 integer 뒤에 올 수 있음
Optional) 부호 존재 가능

  • Decimal Number
    1) 숫자 + 소수점
    2) 숫자 + 소수점 + 숫자
    3) 소수점 + 숫자

  • Integer
    1) 숫자

  • Input
    숫자
  • Output
    숫자가 decimal 또는 integer인지 아닌지 bool

예제

풀이

public class Solution {
    public bool IsNumber(string s) {

        s = s.ToLower();

        bool isNum = false;
        bool isDot = false;
        bool isExp = false;

        for(int i = 0; i < s.Length; i++)
        {
            char c = s[i];
            if (c >= '0' && c <= '9') isNum = true;
            else if (c == '.')
            {
                // 점 또는 e 포함시
                if (isDot || isExp) return false;
                isDot = true;
            }
            else if (c == 'e')
            {
                // 앞이 숫자가 아니거나 e 이미 존재하면
                if (isExp || !isNum) return false;
                isExp = true;
                isNum = false;
            }
            else if (c == '+' || c == '-') // 부호일시 앞에 확인
            {
                if (i != 0 && s[i-1] != 'e') return false;
            }
            else return false;
        }

        return isNum;
        
    }
}

결과

profile
하나씩 심어 나가는 개발 농장🥕 (블로그 이전중)

0개의 댓글