https://leetcode.com/problems/valid-number/
주어진 숫자가 decimal number 또는 integer인지 판단하기
Optional) 'e' 또는 'E'가 integer 뒤에 올 수 있음
Optional) 부호 존재 가능
Decimal Number
1) 숫자 + 소수점
2) 숫자 + 소수점 + 숫자
3) 소수점 + 숫자
Integer
1) 숫자
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;
}
}