题目:

将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0

输入描述:

输入一个字符串,包括数字字母符号,可以为空

输出描述:

如果是合法的数值表达则返回该数字,否则返回0

分析:

注意输入数据的合法性,例如“1234+12”,“12@@#*24”,这样的都是不合法数值,要返回0的。但是如果第一个字符时+或-时是可以的,且影响最后输出的符号,最后还要判断下数字是否超出了范围。

程序:

C++

class Solution {
public:
int StrToInt(string str) {
if(str.size() == 0)
return 0;
long long num = 0;
bool tag = true;
if(str[0] == '-')
tag = false;
for(int i = (str[0] == '+' || str[0] == '-' ? 1 : 0); i < str.size(); ++i){
if(str[i] >= '0' && str[i] <= '9'){
num = num * 10 + (str[i] - '0');
}
else{
num = 0;
break;
}
}
num = tag ? num : (-num);
if(num > INT_MAX || num < INT_MIN)
return 0;
return (int)num;
}
};

Java

public class Solution {
public int StrToInt(String str) {
if(str == null || str.length() == 0)
return 0;
long num = 0;
boolean tag = true;
if(str.charAt(0) == '-')
tag = false;
for(int i = (str.charAt(0) == '+' || str.charAt(0) == '-' ? 1 : 0); i < str.length(); ++i){
if(str.charAt(i) >= '0' && str.charAt(i) <= '9'){
num = num * 10 + (str.charAt(i) - '0');
}
else{
num = 0;
break;
}
}
num = tag ? num : (-num);
if(num > Integer.MAX_VALUE || num < Integer.MIN_VALUE)
return 0;
return (int)num;
}
}

剑指Offer-49.把字符串转换成整数(C++/Java)的更多相关文章

  1. 剑指Offer 49. 把字符串转换成整数 (字符串)

    题目描述 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数. 数值为0或者字符串不是一 ...

  2. [剑指Offer] 49.把字符串转换成整数

    题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符串不是一个合法的数值则返回0  [思路]考虑所有特殊情况 1.数字前面有空格,如s="    12 ...

  3. 剑指 Offer 67. 把字符串转换成整数 + 字符串

    剑指 Offer 67. 把字符串转换成整数 Offer_67 题目描述 题解分析 java代码 package com.walegarrett.offer; /** * @Author WaleGa ...

  4. 力扣 - 剑指 Offer 67. 把字符串转换成整数

    题目 剑指 Offer 67. 把字符串转换成整数 思路1 根据题意,要解决这题,首先要判断的条件有: 不包括首位空格 第一位必须为:+.-.数字三者其一,否则不合法 数字必须连续的,如果遇到非数字, ...

  5. 【Java】 剑指offer(67) 把字符串转换成整数

      本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 请你写一个函数StrToInt,实现把字符串转换成整数这个功能 ...

  6. Go语言实现:【剑指offer】把字符串转换成整数

    该题目来源于牛客网<剑指offer>专题. 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 输入描述: 输入一个字符串,包括数字字母符号,可以为空. 输出描述: 如果是合 ...

  7. 剑指offer49:把字符串转换成整数

    1 题目描述 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数. 数值为0或者字符串不 ...

  8. 算法笔记_028:字符串转换成整数(Java)

    1 问题描述 输入一个由数字组成的字符串,请把它转换成整数并输出.例如,输入字符串“123”,输出整数123. 请写出一个函数实现该功能,不能使用库函数. 2 解决方案 解答本问题的基本思路:从左至右 ...

  9. 剑指Offer:面试题11——数值的整数次方(java实现)

    题目描述: 实现函数double Power(double base, int exponent),求base的exponent次方,不得使用库函数,同时不需要考虑大数问题 思路:本题的重点考察内容是 ...

  10. 【剑指Offer学习】【面试题49:把字符串转换成整数】

    题目:实现一个函数stringToInt,实现把字符串转换成整数这个功能.不能使用atoi或者其它相似的库函数. 题目解析 这看起来是非常easy的题目,实现基本功能 ,大部分人都能用10行之内的代码 ...

随机推荐

  1. 对于小程序canvas在某些情况下touchmove 不能触发导致的签名不连续替代方案(企微)

    1.问题 微信开放社区链接 尝试过新版canvas,在企业微信中签名依然是依然断触,有问题的手机是iphoe15,系统版本以及企微版本微信版本均与签名正常的手机一致,但是那个手机就是无法正常签字,在微 ...

  2. 力扣1069(MySQL)-产品分析Ⅱ(简单)

    题目: 编写一个 SQL 查询,按产品 id product_id 来统计每个产品的销售总量. 查询结果格式如下面例子所示:  解题思路: 没有用到product表,直接在sales表中使用聚合函数: ...

  3. 力扣28(java)-实现 strStr()(简单)

    题目: 实现 strStr() 函数. 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始).如果不存 ...

  4. 提升Java字符串编码解码性能的技巧

    ​简介:常见的字符串编码有LATIN1.UTF-8.UTF-16.GB18030,他们各有各的特点,且之间的转换比较复杂.本文将为大家介绍提升Java字符串编码解码性能的技巧. 作者 | 温绍锦 (高 ...

  5. 阿里开源支持10万亿模型的自研分布式训练框架EPL(EasyParallelLibrary)

    ​简介:EPL背后的技术框架是如何设计的?开发者可以怎么使用EPL?EPL未来有哪些规划?今天一起来深入了解. ​ 作者 | 王林.飒洋 来源 | 阿里技术公众号 一 导读 最近阿里云机器学习PAI平 ...

  6. [Contract] Solidity 合约使用 truffle 部署到测试网和主网

    使用 truffle 发布到非本地的以太坊主网或者测试网时,需要提供钱包的助记词或私钥. 首先安装 truffle 组件:npm install @truffle/hdwallet-provider ...

  7. 2019-9-2-dotnet-获取当前进程方法

    title author date CreateTime categories dotnet 获取当前进程方法 lindexi 2019-9-2 11:3:3 +0800 2019-09-02 10: ...

  8. 算法~利用zset实现滑动窗口限流

    滑动窗口限流 滑动窗口限流是一种常用的限流算法,通过维护一个固定大小的窗口,在单位时间内允许通过的请求次数不超过设定的阈值.具体来说,滑动窗口限流算法通常包括以下几个步骤: 初始化:设置窗口大小.请求 ...

  9. jemeter中json提取器

    1.A接口中的单个参数提取,之后用于其他接口 a. 在需要提取字段的接口上右击添加----后置处理器-----json extractor b. 填写json提取器的数据 1.名称:随便填写,方便自己 ...

  10. 05. gem使用手册

    https://www.jianshu.com/p/ced2793bfde4?utm_campaign=maleskine&utm_content=note&utm_medium=se ...