Advertisement

上海计算机学会2020年7月举办的C++丙组第4题数字验证

阅读量:

输入一组字符,请判断其是否符合浮点数的合法表示形式。浮点数的表示需遵循以下规则:

  • 允许包含 -+ 符号,也可以不包含,但符号最多只能出现一次,并且必须位于字符串的起始位置;
  • 小数点可以存在,也可以不存在,但整个字符串中只能包含一个单独的小数点;
  • 整数部分与小数部分均可被省略,但二者不能同时被省略。

输入格式

一组特定字符构成的序列,用以表达一个需要进行验证的字符串,其中每个字符均为可显示字符,且不包含任何空白符或换行符。

输出格式

当输入内容构成一个符合规范的浮点数表达形式时,应返回 Valid;反之,若不符合规范,则应返回 Invalid

数据范围界定

假设输入字符的总数为 n,其中满足 1≤n≤5000 的条件。

样例数据展示

输入:

+3.1415926

输出:

Valid

输入:

1.0e10

输出:

Invalid

输入:

-25.

输出:

Valid

输入:

.

输出:

Invalid

输入:

-.

输出:

Invalid

题解

本题关键点:明确逻辑,识别不符合规范的情形:

1. 存在超过一个的小数点符号(即小数点数量大于一)

2. 除首个字符可为加减号外,其余位置若包含加减号或其他非数字字符则视为不合法

3.

全部评论 (0)

还没有任何评论哟~