leetcode 65. 有效数字-java实现
题目所属分类
比较麻烦的科学计数法的模拟题
原题链接
题解
class Solution {
public boolean isNumber(String s) {
//去掉空格
int l = 0;
int r = s.length()-1 ;
while(l <= r && s.charAt(l) == ' ') l++ ;
while( l <= r && s.charAt(r) == ' ' )r-- ;
if(l > r ) return false;//说明字符串空的
s = s.substring(l , r + 1);
//前面正负号 去掉
if(s.charAt(0) == '+' || s.charAt(0) == '-') s = s.substring(1);
//没有去掉
if(s.length() == 0) return false;
//只有这种符号去掉
if(s.charAt(0) == '.' && (s.length() == 1 || s.charAt(1) == 'e' || s.charAt(1) == 'E'))
return false;
//记录. e 的个数了
int dot = 0 , e = 0 ;
for(int i = 0 ; i < s.length() ; i++){
if(s.charAt(i) == '.'){
if(dot > 0 || e > 0) return false;
dot ++ ;
}else if(s.charAt(i) == 'e' || s.charAt(i) == 'E'){
//e的前面是空的 后面是空的 e之前存在过 返回false
if(i == 0 || i+1 == s.length() || e > 0) return false ;
//如果e的后面是正负号的话
if(s.charAt(i+1) == '+' || s.charAt(i+1) == '-'){
//e后面还没有数
if(i+2 == s.length()) return false;
//否则正负号跳过
i++ ;
}
e++ ;
}else if(s.charAt(i) < '0' || s.charAt(i) > '9')return false ;
}
return true ;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!