题解 | #表示数值的字符串#

表示数值的字符串

http://www.nowcoder.com/practice/e69148f8528c4039ad89bb2546fd4ff8

  1. 正则表达式解决。
  2. 注意regex 和 regex_match
  3. 注意常用的正则的语法。\表示转义,\d这个整数需要转义才可以使用。
  4. ()用来匹配一块字段,可以后加?号代表该字段可有可无
  5. []里面的字符有且只能出现一次,可以加*+来控制次数。
  6. ”“来包含这个串
#include<bits/stdc++.h>

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param str string字符串 
     * @return bool布尔型
     */
    bool isNumeric(string str) {
        // write code here
        if(!str.length()) return false;

        string s = trim(str);//删除所有空格

        if(s.length()==0){//输入的是一个空格
            return false;
        }

        return regex_match(s, regex("[+-]?(\\d+|\\d+\\.\\d*|\\.\\d+)([eE][+-]?\\d+)?"));


    }


    //自定义c++ trim函数
    string trim(string str){

        auto pos = str.begin();//从头开始找

        while(1){
            pos = find(pos,str.end(),' ');

            if(pos==str.end()){
                break;
            }

            str.erase(pos);
        }

        return str;
    }
};
剑指Offer 文章被收录于专栏

剑指offer的解析结合

全部评论

相关推荐

码农索隆:以下是我以我微薄的认知提供的建议: 1.考个教师资格证,去当体育考试。 2.去健身房当健身教练(因为在我印象里面体育生身材都不错)。
点赞 评论 收藏
分享
钱嘛数字而已:辅导员肯定不能同意,不然你出事了,他要承担责任。但是,脚和脑子都长在你自己身上,使用它还需要向辅导员报告么? 辅导员必须按流程拒绝你,然后你拿出成年人的态度,做自己的选择。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务