LeetCode OJ String to Integer (atoi) 字符串转数字
#include <iostream>
#include <assert.h>
using namespace std;
int ato(const char *str) {
int i=,e=,s=;
int max=,min=-;
int f=;
int tem[]={};
unsigned int pan=;
while(*str==' '){ //过滤掉连续空格
str++;
}
if(*str=='-'||*str=='+'||(*str<=''&&*str>='')){
if(*str=='-'||*str=='+'){ //过滤掉正负号
if(*str=='-')
f=-;
str++;
}
while(*str=='') //过滤掉前面的无用的0
str++;
if( *str<=''&&*str>='' ){ //过滤掉非数字的字符 while( *str!='\0'){ //判断字符串是否结束
if( *str>''||*str<'' ) //字符串还没结束,就出现非数字字符
break;
if( i== ){ //大于10位的数字都要作溢出处理
if(f==-)
return min;
else
return max;
}
tem[i++]=*str-'';
e=e*+(*str-'');
str++;
}
if(i==){ //刚好10位,需要特殊处理
if(f==-){ //负数处理
if(tem[]>){ //超过30,0000,0000
return min;
}
for(i=;i<;i++){
pan=pan*+tem[i];
}
if(pan>=) // 负数的绝对值大于等于2147483648
return min;
}
else{ //正数处理
if(tem[]>){
return max;
}
for(i=;i<;i++){
pan=pan*+tem[i];
}
if(pan>=) // 负数的绝对值大于等于2147483648
return max;
}
}
return f*e;
}
else
return ;
}
return ;
}
int main(){
char str[];
int qq=;
while(cin>>str){
qq=ato(str);
cout<<qq<<endl;
}
return ;
}
这个东西原来挺难考虑周全的,还好leetcode会指出是输入什么数据会输出错误,不然估计找一辈子了。
鉴于这么苛刻的条件,贴出自己的不简洁的代码,这道题第一次AC。
以后有好办法再修改。
LeetCode OJ String to Integer (atoi) 字符串转数字的更多相关文章
- [LeetCode] 8. String to Integer (atoi) 字符串转为整数
Implement atoi which converts a string to an integer. The function first discards as many whitespace ...
- [leetcode]8. String to Integer (atoi)字符串转整数
Implement atoi which converts a string to an integer. The function first discards as many whitespace ...
- 【LeetCode】String to Integer (atoi)(字符串转换整数 (atoi))
这道题是LeetCode里的第8道题. 题目要求: 请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当我们 ...
- Leetcode 8 String to Integer (atoi) 字符串处理
题意:将字符串转化成数字. 前置有空格,同时有正负号,数字有可能会溢出,这里用long long解决(leetcode用的是g++编译器),这题还是很有难度的. class Solution { pu ...
- Leetcode 8. String to Integer (atoi) atoi函数实现 (字符串)
Leetcode 8. String to Integer (atoi) atoi函数实现 (字符串) 题目描述 实现atoi函数,将一个字符串转化为数字 测试样例 Input: "42&q ...
- 【leetcode】String to Integer (atoi)
String to Integer (atoi) Implement atoi to convert a string to an integer. Hint: Carefully consider ...
- leetcode day6 -- String to Integer (atoi) && Best Time to Buy and Sell Stock I II III
1. String to Integer (atoi) Implement atoi to convert a string to an integer. Hint: Carefully con ...
- String to Integer (atoi) - 字符串转为整形,atoi 函数(Java )
String to Integer (atoi) Implement atoi to convert a string to an integer. [函数说明]atoi() 函数会扫描 str 字符 ...
- [leetcode] 8. String to Integer (atoi) (Medium)
实现字符串转整形数字 遵循几个规则: 1. 函数首先丢弃尽可能多的空格字符,直到找到第一个非空格字符. 2. 此时取初始加号或减号. 3. 后面跟着尽可能多的数字,并将它们解释为一个数值. 4. 字符 ...
随机推荐
- 关于linux服务器的批量维护、批量升级、
由于版权费用原因,众多中小服务器采用linux服务器进行功能处理.在进行批量升级.更新业务程序时.可以采用如下批量方案: 1.打包成rpm包,并配置yum源服务器,以支持个人的yum服务器进行处理.一 ...
- centos 运用ssh的rsa算法实现无密码登录
ssh 公钥和私钥原理 1.客户端机子生成私钥和公钥,将公钥放到服务器证书中,然后就可以实现免密码登录.(服务器认证文件要有该登录用户的读执行权限) 2.a登录b: a机子:test01账号(b也要建 ...
- java模式之-模板方法模式
模板方法模式是java设计模式常见的模式之一. <JAVA与模式>中写道: 模板方法模式是类的行为模式.准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法 ...
- C#.NET SQL数据库备份与还原解决方案
C#.NET SQL数据库备份与还原解决方案http://www.csframework.com/archive/1/arc-1-20110924-1841.htm 开发框架V2.2(快速开发版)系统 ...
- js基础之动画(二)
一.多物体同时运动 栗子一:多个Div,鼠标移入变高,动态下拉菜单 function startMove(obj,iTarget){ clearInterval(obj.timer); obj.ti ...
- [转载]Android核心分析
2013-12-19 15:44:03 转载自: http://blog.csdn.net/column/details/androidcore.html 很好的文章,阅读请跳转到转载链接,转载备以后 ...
- mysql 远程连接
4.现在如果用你电脑上的终端进行MySQL连接时,有可能出现如下错误: MySQL远程连接ERROR 2003 (HY000):Can't connect to MySQL server on'XXX ...
- C++-static的用法
static成员变量 为什么要有静态成员变量:1)不进入全局名字空间.2)实现信息隐藏 要点: 除了整型的const 静态成员变量可以在类体内初始化,其它值都需要在类体外的实现文件定义 static函 ...
- WP8.1 Study12:文件压缩与Known Folder(包含SD卡操作)
一.文件压缩 当应用程序保存和加载数据,它可以使用压缩. 1.使用 Windows.Storage.Compression.Compressor 压缩,获得一个Compressor stream. v ...
- android button text属性中英文大小写问题
Android版本升级的原因,需要手动添加属性android:textAllCaps="false"