65. Valid Number
package LeetCode_65 /** * 65. Valid Number * https://leetcode.com/problems/valid-number/description/ * * Validate if a given string can be interpreted as a decimal number. Some examples: "0" => true " 0.1 " => true "abc" => false "1 a" => false "2e10" => true " -90e3 " => true " 1e" => false "e3" => false " 6e-1" => true " 99e2.5 " => false "53.5e93" => true " --6 " => false "-+3" => false "95a54e53" => false Note: It is intended for the problem statement to be ambiguous. You should gather all requirements up front before implementing one. However, here is a list of characters that can be in a valid decimal number: Numbers 0-9 Exponent - "e" Positive/negative sign - "+"/"-" Decimal point - "." * */ class Solution { fun isNumber(s: String): Boolean { var eSeen = false var dotSeen = false var numSeen = false val s2 = s.trim() for (i in s2.indices) { val c = s2[i] if (c.isDigit()) { numSeen = true } else if (c == 'e') { if (!numSeen || eSeen) { return false } eSeen = true //for example "1e" is not valid, so while e has seen, need set numSeen to false numSeen = false } else if (c == '.') { if (dotSeen || eSeen) { /* * 1.dot cannot appear two times * 2.just can appear after e, for example: 99e2.5 is not Valid * */ return false } dotSeen = true } else if (c == '+' || c == '-') { if (i != 0 && s2[i - 1] != 'e') { /* * + and - * 1.can appear in first position * 2.if appear after e, is valid, for example: "005047e+6" is valid * */ return false } } else { //abc is not valid return false } } return numSeen } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2019-06-22 设计模式-装饰模式