四刷65. Valid Number

直接给几个test case说事儿

+ -号除了可以在string的开头,还可以紧接着e

Screen Shot 2018-01-25 at 11.32.23 PM.png

e的出现必须要在number之后,同时也可以出现在.后面(但必须有number)

46.e3 = 46000

  1. = 46

46.e3 = 46*10^3 = 46000

Screen Shot 2018-01-25 at 11.31.40 PM.png
class Solution {
    public boolean isNumber(String s) {
        if (s == null || s.length() == 0){
            return false;
        }    
        s = s.trim();
        boolean seenE = false;
        boolean seenDot = false;
        boolean seenNum = false;
        for (int i = 0; i < s.length(); i++){
            char c = s.charAt(i);
            if (c >= '0' && c <= '9'){
                seenNum = true;
            } else if (c == 'e'){
                if (!seenNum || seenE){
                    return false;
                }
                seenE = true;
                seenNum = false;
            } else if (c == '+' || c == '-'){
                if (i > 0 && s.charAt(i - 1) != 'e'){
                    return false;
                }
            } else if (c == '.'){
                if (seenDot || seenE){
                    return false;
                }
                seenDot = true;
            } else {
                return false;
            }
        }
        return seenNum;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容