leetCode65. 有效数字

2024-05-03 08:04
文章标签 有效数字 leetcode65

本文主要是介绍leetCode65. 有效数字,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

leetCode65. 有效数字
题目思路
在这里插入图片描述


代码

class Solution {
public:bool isNumber(string s) {int l = 0, r = s.size() - 1;// 1.忽略前后的空格while(l <= r && s[l] == ' ') l++;while(l <= r && s[r] == ' ') r--;if(l > r) return false;s = s.substr(l,r - l + 1); // 区间左闭右开// 2.判断其实是否为符号if(s[0] == '+' || s[0] == '-') s = s.substr(1);// s = 提取到[1,end)if(s.empty()) return false;// 3.  (.e或者只有.)是错误的if(s[0] == '.' && (s.size() == 1 || s[1] == 'e' || s[1] == 'E')) return false;// e后面必必须是整数,且不能什么都没有int dot = 0, e = 0; // .个数于e个数for(int i = 0; i < s.size(); i++){if(s[i] == '.'){// .个数大于1,或者.出现在e后面if(dot > 0 || e > 0) return false;dot++;}else if(s[i] == 'e' || s[i] == 'E'){// e的前后不能什么都没有,e只能出现一次if(!i || i + 1 == s.size() || e > 0) return false;// e后面跟符号,符号后不能什么都没有if(s[i + 1] == '+' || s[i + 1] == '-'){if(i + 2 == s.size()) return false;i++; // 不要在判断符号了}e++;}else if(s[i] < '0' || s[i] > '9') return false;}return true;}
};

这篇关于leetCode65. 有效数字的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/956236

相关文章

【字符串】65. 有效数字

本文涉及知识点 字符串 LeetCode65. 有效数字 给定一个字符串 s ,返回 s 是否是一个 有效数字。 例如,下面的都是有效数字:“2”, “0089”, “-0.1”, “+3.14”, “4.”, “-.9”, “2e10”, “-90E3”, “3e+7”, “+6e-1”, “53.5e93”, “-123.456e789”,而接下来的不是:“abc”, “1a”, “1e

Python | Leetcode Python题解之第65题有效数字

题目: 题解: from enum import Enumclass Solution:def isNumber(self, s: str) -> bool:State = Enum("State", ["STATE_INITIAL","STATE_INT_SIGN","STATE_INTEGER","STATE_POINT","STATE_POINT_WITHOUT_INT","STAT

LeetCode 题目 65:有效数字(Valid Number)【python】

题目描述 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在列表的首位,数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 输入格式 digits:一个整数数组。 输出格式 返回一个数组,表示加一后的结果。 示例 示例 1 输入: digits = [1,2,3]输出: [1,2,4]解释: 输入数组表示数

LeetCode Python - 65. 有效数字

目录 题目描述解法运行结果 题目描述 有效数字(按顺序)可以分成以下几个部分: 一个 小数 或者 整数(可选)一个 ‘e’ 或 ‘E’ ,后面跟着一个 整数 小数(按顺序)可以分成以下几个部分: (可选)一个符号字符(‘+’ 或 ‘-’)下述格式之一: ①至少一位数字,后面跟着一个点 ‘.’ ②至少一位数字,后面跟着一个点 ‘.’ ,后面再跟着至少一位数字 ③一个点 ‘

【C语言】输入一个华氏温度F,输出相应的摄氏温度C。公式为:C=5/9(F-32),输出要有文字说明“摄氏温度为:“,并要求小数点后必须保留2位有效数字(四舍五入),不足补零。

输入: 输入一个浮点数F 输出: 输出文字说明及相应的摄氏温度C。小数点后必须保留2位有效数字(四舍五入),不足补零。 输入示例: 17.2 输出示例: 摄氏温度为:-8.22 数据范围: 输入和输出均为float范围的浮点数 #include<stdio.h>int main(){float f,c;scanf("%f",&f);c=(5.0/9)*(f-32);//为保

取double类型的几位有效数字

当我们需要对一个double型的数据规定几位有效数字,并且四舍五入时,可以用到一下方法:double d=2.2312431531; d=Math.Round(d,2);    //这是对d取两位小数,并四舍五入,输出结果为 2.23。 当我们需要将一串字符串转换并存在数组时可以用以下方法: string s ="1,2,3,4,5,6,7,8,9,0,"; string[] str=

[LeetBook]【学习日记】有效数字——状态机

题目 有效数字 有效数字(按顺序)可以分成以下几个部分: 若干空格一个小数或者整数(可选)一个’e’或’E’,后面跟着一个整数若干空格 小数(按顺序)可以分成以下几个部分: (可选)一个符号字符(‘+‘或’-’)下述格式之一: 至少一位数字,后面跟着一个点 ‘.’至少一位数字,后面跟着一个点 ‘.’,后面再跟着至少一位数字一个点 ‘.’,后面跟着至少一位数字 整数(按顺序)可以分成以下几个

【leetcode】有效数字 正则表达式

/*** @param {string} s* @return {boolean}*/var validNumber = function(s) {s=s.trim();return /^(\+|\-)?(\d+(\.\d*)?|\.\d+)((e|E)(\+|\-)?\d+)?$/.test(s);}; ^:表示字符串的开始 (+|-)?:可选的正号或负号 (\d+(.\d*)?|

Double.parseDouble判断字符串是否为有效数字

描述: 判断字符串是否是有效数字,是则返回0,不是返回-1; 如:123.456是有效数字,返回0; 123a不是有效数字,返回-1。 分析: 可以利用Double.parseDouble(string s)进行判断,当s为null或不能转换为Double时均会抛出异常。 代码如下: double a;try {a = Double.parseDouble(s);} catch (Exce

字符串问题3:是否是有效数字

是否是有效数字 LeetCode OJ:Valid Number