LintCode-54.转换字符串到整数
转换字符串到整数
实现atoi这个函数,将一个字符串转换为整数。如果没有合法的整数,返回0。如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数,或者INT_MIN(-2147483648)如果是负整数。
样例
"10" =>10
"-1" => -1
"123123123123123" => 2147483647
"1.0" => 1标签
字符串处理 基本实现 优步
code
class Solution {
public:
/**
* @param str: A string
* @return An integer
*/
int atoi(string str) {
// write your code here
str = eraseSpace(str);
int size=str.size();
if(size <= 0)
return 0;
if(str[0]<='9' && str[0]>='0') {
int num=str[0]-'0', i, dec=str[0]-'0';
for(i=1; i<size; i++) {
if(str[i]<='9' && str[i]>='0') {
dec = num;
num = num * 10;
if(isCrossBorder(num, dec))
return 2147483647;
dec = num;
num += str[i]-'0';
if(isCrossBorder(num, dec))
return 2147483647;
}
else {
return num;
}
}
return num;
}
else if(str[0] == '+') {
int num=0, i, dec=0;
for(i=1; i<size; i++) {
if(str[i]<='9' && str[i]>='0') {
dec = num;
num = num * 10;
if(isCrossBorder(num, dec))
return 2147483647;
dec = num;
num += str[i]-'0';
if(isCrossBorder(num, dec))
return 2147483647;
}
else {
return num;
}
}
return num;
}
else if(str[0] == '-') {
int num=0, i, dec=0;
for(i=1; i<size; i++) {
if(str[i]<='9' && str[i]>='0') {
dec = num;
num = num * 10;
if(isCrossBorder(num, dec))
return -2147483648;
dec = num;
num += str[i]-'0';
if(isCrossBorder(num, dec))
return -2147483648;
}
else {
return num*-1;
}
}
return num*-1;
}
else {
return 0;
}
}
bool isCrossBorder(int num1, int num2) {
if(num1 < num2)
return true;
return false;
}
string eraseSpace(string str) {
int size=str.size(),i=0,mark=0;
string result;
for(i=0; i<size; i++) {
if(str[i]==' ' && mark==0) {
continue;
}
else if(str[i]!=' ' && mark==0) {
mark = 1;
result += str[i];
}
else if(str[i]!=' ' && mark==1) {
mark = 1;
result += str[i];
}
else if(str[i]==' ' && mark==1) {
break;
}
}
return result;
}
};
LintCode-54.转换字符串到整数的更多相关文章
- 【LintCode】转换字符串到整数
问题描述: 实现atoi这个函数,将一个字符串转换为整数.如果没有合法的整数,返回0.如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数,或者INT_MIN(-21 ...
- [LintCode]转换字符串到整数
问题描述: 实现atoi这个函数,将一个字符串转换为整数.如果没有合法的整数,返回0.如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数,或者INT_MIN(-21 ...
- Java中将0x开头的十六进制字符串转换成十进制整数
1.Integer.toString(int i) 由于input(输入数据)是以0x开头的字符串,并不是整型.因而在用 String s = Integer.toString(input); 时用会 ...
- 编程练习------C/C++分别实现字符串与整数的转换
C/C++分别实现字符串与整数的转换 前提:不使用 itoa 和 atoi. 方法一.C和C++通用的一种转换手段是: 1.整数转化为字符串:采用加'0',再逆序的办法,整数加'0'就会隐性转化成ch ...
- [PHP] 算法-将一个字符串转换成一个整数的PHP实现
题目描述 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数. 数值为0或者字符串不是一 ...
- python 字符串和整数,浮点型互相转换
在编程当中,经常要用到字符串的互相转换, 现在记录 python 里面的字符串和整数是怎么转换的. int(str) 函数将 符合整数的规范的字符串 转换成 int 型. num2 = "1 ...
- Leetcode8--->String to Integer(实现字符串到整数的转换)
题目: 实现字符串到整数的转换 解题思路: 下面给出这道题应该注意的一些细节: 1. 字符串“ 123 ” = 123: 2. 字符串“+123” = 123: 3. 字符串“-12 ...
- Leetcode题库——8.字符串转为整数【##】
@author: ZZQ @software: PyCharm @file: myAtoi.py @time: 2018/9/20 20:54 要求:实现 atoi,将字符串转为整数. 1)根据需要丢 ...
- SQL Server日期时间格式转换字符串详解 (详询请加qq:2085920154)
在SQL Server数据库中,SQL Server日期时间格式转换字符串可以改变SQL Server日期和时间的格式,是每个SQL数据库用户都应该掌握的.本文我们主要就介绍一下SQL Server日 ...
随机推荐
- CSS翻转小效果
CSS3翻转显示另外一张图: 1.backface-visibility:hidden;背面不可见 2.transform:rotate();旋转 (可以把图片换成本地图片看一下效果) <!DO ...
- Python3爬虫(十七) Scrapy框架(一)
Infi-chu: http://www.cnblogs.com/Infi-chu/ 1.框架架构图: 2.各文件功能scrapy.cfg 项目的配置文件items.py 定义了Item数据结构,所有 ...
- 19-21Consent Page页实现
1-在授权服务端建立相应的显示ViewModel namespace MvcCookieAuthSample.Models { public class ConsentViewModel { publ ...
- typescript入门,可以一起探讨提点意见互相学习。
typescript是js的一个超集,TypeScript扩展了JavaScript的语法,所以任何现有的JavaScript程序可以不加改变的在TypeScript下工作.TypeScript是为大 ...
- TensorFlow之tf.nn.dropout():防止模型训练过程中的过拟合问题
一:适用范围: tf.nn.dropout是TensorFlow里面为了防止或减轻过拟合而使用的函数,它一般用在全连接层 二:原理: dropout就是在不同的训练过程中随机扔掉一部分神经元.也就是让 ...
- FpSpread基本句法
1, 在调用的.aspx页面开头注册: "FarPoint.Web.Spread" Assembly="FarPoint.Web.SpreadJ, V ...
- 成都Uber优步司机奖励政策(3月3日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- P1294 高手去散步
P1294 高手去散步 题目背景 高手最近谈恋爱了.不过是单相思.“即使是单相思,也是完整的爱情”,高手从未放弃对它的追求.今天,这个阳光明媚的早晨,太阳从西边缓缓升起.于是它找到高手,希望在晨读开始 ...
- LeetCode: 55. Jump Game(Medium)
1. 原题链接 https://leetcode.com/problems/jump-game/description/ 2. 题目要求 给定一个整型数组,数组中没有负数.从第一个元素开始,每个元素的 ...
- 「日常训练」Watering Flowers(Codeforces Round #340 Div.2 C)
题意与分析 (CodeForces 617C) 题意是这样的:一个花圃中有若干花和两个喷泉,你可以调节水的压力使得两个喷泉各自分别以\(r_1\)和\(r_2\)为最远距离向外喷水.你需要调整\(r_ ...