剑指offer面试题[54]-表示数值的字符串
题目描述
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。
class Solution {
public:bool isNumeric(char* string){if(string==NULL)return false;if(*string=='+'||*string=='-')++string;if(*string=='\0')return false;while(*string!='\0'&&*string<='9'&&*string>='0') //到达第一个不是数字的位置++string;bool flag=true;if(*string!='\0'){if(*string=='.') //若是小数{++string;while(*string!='\0'&&*string<='9'&&*string>='0') //到达第一个不是数字的位置++string;if(*string=='e'||*string=='E') //小数的指数,如3.2e-12flag=isExponent(&string); }else if(*string=='e'||*string=='E') //指数{flag=isExponent(&string);}elseflag=false; } return flag&&*string=='\0';} bool isExponent(char** string){if(**string!='E'&&**string!='e')return false;++(*string); //当前字符为'e'或'E',向后移动一位if(**string=='+'||**string=='-') //当前字符为'+'或'-',向后移动一位++(*string);if(**string=='\0') //当前字符为'\0',说明e或E后面没有数字,则结束。return false;while(**string!='\0'&&**string<='9'&&**string>='0') //到达第一个不是数字的位置++(*string); if(**string=='\0')return true;elsereturn false;}
};
剑指offer面试题[54]-表示数值的字符串相关推荐
- 剑指offer——面试题54:表示数值的字符串
剑指offer--面试题54:表示数值的字符串 参考网址:https://www.nowcoder.com/profile/9717187/codeBookDetail?submissionId=15 ...
- 剑指offer——面试题11:数值的整数次方
剑指offer--面试题11:数值的整数次方 Solution1:基本算法 累乘,时间复杂度为O(n) 要考虑全部情况:指数 < 0, == 0 和 > 0. 注意在 if-else if ...
- 剑指offer——面试题42-1:左旋转字符串
剑指offer--面试题42-1:左旋转字符串 20180906整理 Solution1: 自己最开始想出来的垃圾算法!!! class Solution {public:string LeftRot ...
- 剑指offer | 面试题54:二叉搜索树的第k大节点
转载本文章请标明作者和出处 本文出自<Darwin的程序空间> 本文题目和部分解题思路来源自<剑指offer>第二版 开始行动,你已经成功一半了,献给正在奋斗的我们 题目 给定 ...
- @ 剑指offer(python)表示数值的字符串
剑指offer刷题笔记53(python) 题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如,字符串"+100","5e2",&quo ...
- 剑指Offer - 面试题54. 二叉搜索树的第k大节点(二叉树循环遍历)
1. 题目 给定一棵二叉搜索树,请找出其中第k大的节点. 示例 1: 输入: root = [3,1,4,null,2], k = 13/ \1 4\2 输出: 4示例 2: 输入: root = [ ...
- 剑指offer面试题54. 二叉搜索树的第k大节点(逆中序遍历)
题目描述 给定一棵二叉搜索树,请找出其中第k大的节点. 思路 详见链接 代码 class Solution:def kthLargest(self, root:TreeNode, k:int)-> ...
- [剑指offer]面试题第[38]题[JAVA][字符串的排列][回溯法]
[问题描述][中等] 输入一个字符串,打印出该字符串中字符的所有排列. 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素.示例: 输入:s = "abc" 输出:[&quo ...
- 剑指Offer - 面试题58 - II. 左旋转字符串
1. 题目 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部.请定义一个函数实现字符串左旋转操作的功能.比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转 ...
最新文章
- poj2446(匈牙利算法)
- 国内唯一ACL最佳论文得主冯洋:冲击最佳论文需要知道的事情
- 如何 0 改造,让单体/微服务应用成为 Serverless Application
- 突然不能 ip访问服务器文件夹,用友U8 工作站连接不到服务器,ping IP及服务器名都正常,访问服务器共享文件夹也正常...
- VMware Workstation All Key
- 蚂蚁金服终端实验室演进之路
- 黑客攻击公司化:网络犯罪也有商业模式也有CEO
- c语言函数调用用法大全,C语言函数
- PXE启动原理以及与普通Linux启动的对比
- Java 遍历JsonNode
- C++primer plus第六版课后编程题答案14.3(仅供参考)
- 世界上最健康的作息时间表
- 网络交换机 - Swtich 简介
- 计算机英语输入法怎么,电脑英文输入法不见了怎么处理?
- 安装多版本Chrome
- 超级壁纸android,超级壁纸大全app下载
- Rosenfeld细化算法 matlab(速度超慢)
- linux内置变量大全,(转)linux awk 内置变量使用介绍
- 如何搭建一个自己的网站-域名篇(上)
- POJ 2993【Emag eht htiw Em Pleh】