牛客网 | 表示数值的字符串

原创 2015年11月19日 23:51:10

请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。


做的很无语。。。毫无数据结构和算法而言

public class Solution {
    public static boolean isNumeric(char[] str) {
        int i=0;
        if(str[i]=='+'||str[i]=='-'||IsNum(str[i]))
        {
            i++;
            while(i<str.length)
            {
                if(IsNum(str[i])) i++;
                else    break;
            }
            if(i==str.length)  return true;
            else if(str[i]=='.')
            {
                if(++i==str.length)   return true;
                else if(IsNum(str[i]))
                {
                    i++;
                    while(i<str.length)
                    {
                        if(IsNum(str[i])) i++;
                        else    break;
                    }
                    if(i==str.length)   return true;
                    else if(str[i]=='e'||str[i]=='E')
                    {
                        i++;
                        if(str[i]=='+'||str[i]=='-'||IsNum(str[i]))
                        {
                            i++;
                            while(i<str.length)
                            {
                                if(IsNum(str[i])) i++;
                                else    break;
                            }
                            if(i==str.length)   return true;
                            else return false;
                        }
                        else return false;
                    }
                    else    return false;

                }
                else return false;
            }
            else if(str[i]=='e'||str[i]=='E')
            {
                if(++i==str.length)   return false;
                else if(str[i]=='+'||str[i]=='-'||IsNum(str[i]))
                {
                    i++;
                    while(i<str.length)
                    {
                        if(IsNum(str[i])) i++;
                        else    break;
                    }
                    if(i==str.length)   return true;
                    else return false;
                }
                else return false;
            }
            else return false;

        }
        else
        {
            return false;
        }

    }

    public static boolean IsNum(char ch)
    {
        if(ch<'0'||ch>'9') return false;
        else return true;
    }
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

关于字符串操作的面试题(牛客网视频文字个人理解版)

1.规则判断类型 判断字符串是否符合整数规则/浮点数规则/回文字符串规则。 2.数字运算(大整数相关的加减乘除操作) 3.与数组操作有关的类型(与数组有关的调整、排序等操作) 4.字符计数(@1.使...
  • corbiekiki
  • corbiekiki
  • 2016年04月06日 17:13
  • 1056

【剑指Offer学习】【面试题54:表示数值的字符串】

题目:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例子说明  例如,字符串“+100”,“5e2”,“-123”,“3.1416”及”-1E-16”都表示数值,但“12e”,”1a3....
  • DERRANTCM
  • DERRANTCM
  • 2015年07月10日 08:14
  • 2684

lintcode 二进制求和 给定两个二进制字符串,返回他们的和(用二进制表示)。

Lintcode容易题 二进制求和 查看运行结果  15:00  Start 给定两个二进制字符串,返回他们的和(用二进制表示)。 您在真实的面试中是否遇到过这个题?  Yes ...
  • cjt5047
  • cjt5047
  • 2016年02月21日 18:06
  • 2701

【剑指offer】面试题20:表示数值的字符串

题目请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。 例如,字符串”+100”,”5e2”,”-123”,”3.1416”和”-1E-16”都表示数值。 但是”12e”,”1a3.14...
  • qq1263292336
  • qq1263292336
  • 2017年07月23日 01:55
  • 346

实验10.3_数值显示拓展_dword型数转变为表示十进制数的字符串

;子程序描述: ;名称:dtoc ;功能:将dword型数转变为表示十进制数的字符串,字符串以0为结尾符。 ;参数:(ax)= dword型数据的低16位 ;        (dx)=...
  • u010518493
  • u010518493
  • 2014年04月18日 21:54
  • 738

【53】表示数值的字符串

【53】表示数值的字符串参与人数:1903 - 时间限制:1秒 - 空间限制:32768K - 本题知识点: 字符串题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,...
  • qianggezaici
  • qianggezaici
  • 2016年08月11日 18:05
  • 286

剑指offer-53.表示数值的字符串

题目:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14...
  • I_love_blog
  • I_love_blog
  • 2017年05月08日 19:52
  • 332

剑指offer--面试题20:表示数值的字符串

#include #include bool scanUnsignedInteger(const char** str) //判断是否是0-9之间的数字; { const char* be...
  • u010726692
  • u010726692
  • 2017年07月15日 14:40
  • 102

《剑指Offer》学习笔记--面试题54:表示数值的字符串

题目:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串“+100”,“5e2”,“-123”,“3.1416”及"-1E-16"都表示数值,但“12e”,"1a3.14","1...
  • zhouwei1221q
  • zhouwei1221q
  • 2015年05月15日 16:27
  • 242

剑指Offer:表示数值的字符串

个人感觉这种题目用正则表达式匹配最简单,也就两三行代码就能解决,但是呢,好像并不能充分锻炼我们的逻辑思维能力,这个问题本身不难,但边界条件,特殊输入很多,要一一考虑清楚,下面给出一个一种一种情况考虑排...
  • destiny_python
  • destiny_python
  • 2017年08月04日 10:30
  • 321
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:牛客网 | 表示数值的字符串
举报原因:
原因补充:

(最多只允许输入30个字)