剑指offer——面试题54:表示数值的字符串
2018-03-29 23:28
302 查看
剑指offer——面试题54:表示数值的字符串
参考网址:https://www.nowcoder.com/profile/9717187/codeBookDetail?submissionId=15761119利用特殊字符把字符串分割为整数段这个思想值得借鉴!
class Solution { public: bool isNumeric(char* string) { if(string == NULL) //空指针返回false return false; if(*string == '+' || *string == '-') string++; if(*string == '\0') //若只有符号位则返回false return false; int dot = 0, num = 0, nume = 0;//分别用来标记小数点、整数部分和e指数是否存在 while(*string != '\0') { //利用特殊字符把字符串分割为整数段这个思想值得借鉴! if(*string >= '0' && *string <= '9') //出现了数字,则指针往后移 { //同时num = 1代表出现了整数部分 string++; num=1; } else if(*string == '.'){ if(dot > 0 || nume > 0) //如果存在已经存在小数点或e指数则返回false。注:此题在书中规定中如"-.123"也被判定为数值 return false; //即有的小数没有整数位,也被判定为合法数值所以没有"num == 0 ||"这个条件 string++;//否则指针后移 dot=1; //并标记出现了小数点 } else if(*string == 'e' || *string == 'E') { if(num == 0 || nume > 0) //如果没有整数部分或已经存在e指数 return false; //返回false string++;//否则指针后移 nume++; //并标记已经出现了e指数 if(*string == '+' || *string == '-') string++;//如果出现了正负号,指针后移 if(*string == '\0') //如果e指数后面字符串直接结束,返回false return b854 false; //如果e后面有符号位,然后符号位直接结束,返回false } else return false; } return true; } };
相关文章推荐
- 【剑指Offer】面试题54:表示数值的字符串
- 【剑指Offer学习】【面试题54:表示数值的字符串】
- 剑指offer-面试题54-表示数值的字符串
- 剑指offer-面试题54:表示数值的字符串
- 剑指offer--面试题54:表示数值的字符串
- 剑指Offer面试题54:表示数值的字符串
- 剑指offer——面试题54:表示数值的字符串
- 剑指offer54 表示数值的字符串
- 剑指offer--面试题20:表示数值的字符串
- 剑指offer面试题54 表示数字的字符串(java实现)
- 【剑指offer】面试题20:表示数值的字符串
- 剑指Offer 面试题20:表示数值的字符串 Java代码实现
- 面试题54 表示数值的字符串
- 面试题54——表示数值的字符串
- 面试题54:表示数值的字符串
- 剑指Offer:表示数值的字符串
- 剑指offer-----判断字符串是否表示数值(java版)
- 剑指offer--表示数值的字符串
- 面试题54:表示数值的字符串
- 剑指offer-表示数值的字符串