【HDU1409】【模拟 极端数据特判】Is It a Number 判定给定字符串是否为数类型
来源:互联网 发布:高圆圆长相知乎 编辑:程序博客网 时间:2024/04/29 01:23
#include<stdio.h>#include<string.h>#include<ctype.h>#include<math.h>#include<iostream>#include<string>#include<set>#include<map>#include<vector>#include<queue>#include<bitset>#include<algorithm>#include<time.h>using namespace std;void fre(){freopen("c://test//input.in","r",stdin);freopen("c://test//output.out","w",stdout);}#define MS(x,y) memset(x,y,sizeof(x))#define MC(x,y) memcpy(x,y,sizeof(x))#define MP(x,y) make_pair(x,y)#define ls o<<1#define rs o<<1|1typedef long long LL;typedef unsigned long long UL;typedef unsigned int UI;template <class T1,class T2>inline void gmax(T1 &a,T2 b){if(b>a)a=b;}template <class T1,class T2>inline void gmin(T1 &a,T2 b){if(b<a)a=b;}const int N=0,M=0,Z=1e9+7,ms63=1061109567;int casenum,casei;char s[105];bool check(){bool dot=0;bool E=0;for(int i=0;s[i];i++)if(!isdigit(s[i])){if(s[i]=='E'){if(E)return 0;E=1;//E最多只能出现一次if((i==0)||(!isdigit(s[i-1])&&s[i-1]!='.'))return 0;//E的前面必须为数字if(s[i+1]==0)return 0;//E的后面必须为数字}else if(s[i]=='-'){if(i!=0&&s[i-1]!='E')return 0;//负号只能出现在串首或E之后if(!isdigit(s[i+1])&&s[i+1]!='.')return 0;//负号的后面必须为数字}else if(s[i]=='.'){if(dot||E)return 0;dot=1;//dot只能出现在E前,且最多只能出现一次bool flag=0;if(i&&isdigit(s[i-1]))flag=1;if(isdigit(s[i+1]))flag=1;if(!flag)return 0;//dot的前后至少要有一侧为数字}else return 0;}return 1;}int main(){scanf("%d",&casenum);getchar();for(casei=1;casei<=casenum;casei++){gets(s);puts(check()?"YES":"NO");}return 0;}/*【数据&&trick&&吐槽】其实这道题的数据很好造,一些纯粹的输入就是最好的测试数据input-E.outputNONONOinput.E-00.E-0outputNOYES【题意】给你一行字符串,让你判定这行字符串是否为一个合法的数字。【类型】模拟【分析】一个合法数字的构成字符集包括——数字,小数点,负号,E。其中E最多出现一次,且——E的前方必须是一个除数字外只含有'-'或'.'的合法数类型,设为类型XE的后方必须是一个除数字外只含有'-'的合法数类型,设为类型Y对于'-','-'可以出现在X或Y中,'-'只能是在首位或者之前为'E'对于'.','.'可以出现在X中,'.'只能出现过一次,且'.'前后必须有一侧为数字。这样这道题就AC了。果然模拟题还是考验逻辑思维能力和数据制造能力啊>_<*/
1 0
- 【HDU1409】【模拟 极端数据特判】Is It a Number 判定给定字符串是否为数类型
- HDU1409-Is It a Number
- Is It a Number hdu1409 水题
- HNOJ Is it a Number?
- java判断字符串是否为数字型字符串
- Codeforces Round #345 (Div. 2)——A. Joysticks(模拟+特判)
- uva7511 Multiplication Table (模拟+特判)
- What is a magic number? And why is it bad?
- 【HDU5527 2015长春赛区A】【贪心 特判模拟】Too Rich 最多硬币数支付 因子思想 贪心打补丁
- POJ——1308Is It A Tree?(模拟拓扑排序判断有向图是否为树)
- 给定两个字符串,请设计一个方法来判定其中一个字符串是否为另一个字符串的置换(容易)
- 判斷字符串是否全為數字
- 判斷字符串是否有漢字
- HDU1325 Is It A Tree? 并查集入门|判树
- POJ1308 Is It A Tree? 并查集入门|判树
- P1529 回家 Bessie Come Home(字符串+flored)+特判
- POJ 1308 Is It A Tree(模拟题)
- NYOJ129 树的判定 || POJ1308 Is It A Tree? 【并查集应用,树的定义】
- 关于Mybits3和Spring4的整合
- mqtt实现向手机推送消息问题总结
- 第八周--数据结构--自建算法库之链串
- 抽象类与接口
- 十分钟让你明白Objective-C的语法(和Java、C++的对比)
- 【HDU1409】【模拟 极端数据特判】Is It a Number 判定给定字符串是否为数类型
- Java类加载与卸载
- VS2015 开发Python
- 对于S5PV210加载u-boot过程的理解
- 在idea+maven环境下配置和安装tomcat,并且创建一个web工程
- MyEclipse使用快捷方式查找类和文件等资源
- 成哥C笔记-动态分配内存
- 深度学习笔记(二)用Torch实现线性回归
- 测试