题目描述
输入一串字符,请判断它是否可以成为一个浮点数的合法表示。浮点数的表示需要满足以下格式: 可以有-或+,也可以没有,但最多只有一个,且必须出现在第一个字符; 可以有小数点,也可以没有小数点,但最多只有一个小数点; 整数部分可以省略、小数部分也可以省略,但不能同时省略。
输入格式
若干个字符,表示一个有待验证的字符串,保证每个字符都是可见字符,保证不会出现空格或换行。
输出格式
如果输入是一个浮点数的合法表示,输出 Yes,否则,输出 No。
样例输入
+3.1415926
样例输出
Yes
AC代码
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
cin>>s;
int n=0,n1=0;
int a=s.length()-1;
for(int i=a-1;i>=0;i--){
if(s[i]=='.'){
n++;
}else if(s[i]=='+'||s[i]=='-'){
n1++;
}
}
if(n>1||n1>1||a-n-n1==0){
cout<<"No";
}else{
cout<<"Yes";
}
return 0;
}