65. Valid Number
use flags to get the result in one loop
class Solution {
public boolean isNumber(String s) {
boolean ePresent = false;
boolean dotPresent = false;
boolean numPresent = false;
for (int i =0; i<s.length(); i++){
char ch = s.charAt(i);
// use of switch clause
switch(ch){
case '.':
if(ePresent || dotPresent) return false;
dotPresent = true;
break;
case 'e':
case 'E':
if(ePresent || !numPresent) return false;
ePresent = true;
numPresent = false;
break;
case '+':
case '-':
// remember: it is && not ||
if(i!=0 && (s.charAt(i-1)!='E') && (s.charAt(i-1)!='e')) return false;
break;
default:
if(ch>='0' && ch<='9') numPresent = true;
else return false;
}
}
return numPresent;
}
}
Last updated
Was this helpful?