剑指offer—面试题20:表示数值的字符串

时间:2021-7-21 作者:qvyue

请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100″、”5e2″、”-123″、”3.1416″、”-1E-16″、”0123″都表示数值,但”12e”、”1a3.14″、”1.2.3″、”+-5″及”12e+5.4″都不是。

假设字符串为A.BeC或A.BEC, 也就是整数部分为A,小数部分为B,指数部分为C,按顺序判断是否包含这三部分。

  • 在字符串后添加结束标志
  • 使用全局index遍历字符串
  • scanInteger扫描有符号整数,用来匹配A和C部分
  • scanUnsignedInteger扫描无符号整数,用来匹配B部分
class Solution {
    
    var index = 0
    
    func isNumber(_ s: String) -> Bool {
        guard s.count != 0 else {
            return false
        }
       //  将字符串转为字符数组
        let sArray = Array(s)
        // 排除空格
        while  index ) -> Bool {
        if index ) -> Bool{
        let before = index
        while index = "0" && sArray[index]  before
    }
}
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。