剑指offer49 把字符串转换成整数
这个代码会报错
class Solution {
public:
enum status {kvalid = ,kinvalid};
int now_status = kvalid;
int StrToInt(string str) {
now_status = kinvalid;
long long num = ;
int index = ;
bool minus = false;
if(str.size() != && str[index] != '\0'){
if(str[index] == '+'){
index++;
}
else if(str[index] == '-'){
minus = true;
index++;
}
if(str[index] != '\0'){
num = StrToIntCore(str,minus,index);
}
}
return int(num);
}
long long StrToIntCore(string str,bool minus,int index){
int length = str.size();
long long num = ;
int flag = minus ? - : ;
for(;index < length;index++){
if(str[index] >= '' && str[index] <= ''){
num = num* + flag * (str[index]-'');if(( num < 0x80000000) || ( num > 0x7FFFFFFF)){
num = ;
break;
}
}
else{
num = ;
break;
}
}
if(str[index] == '\0'){
now_status = kvalid;
}
return num;
}
};
修改为:
class Solution {
public:
enum status {kvalid = ,kinvalid};
int now_status = kvalid;
int StrToInt(string str) {
now_status = kinvalid;
long long num = ;
int index = ;
bool minus = false;
if(str.size() != && str[index] != '\0'){
if(str[index] == '+'){
index++;
}
else if(str[index] == '-'){
minus = true;
index++;
}
if(str[index] != '\0'){
num = StrToIntCore(str,minus,index);
}
}
return int(num);
}
long long StrToIntCore(string str,bool minus,int index){
int length = str.size();
long long num = ;
int flag = minus ? - : ;
for(;index < length;index++){
if(str[index] >= '' && str[index] <= ''){
num = num* + flag * (str[index]-'');
int xxxx= 0x80000000;
if(( num < xxxx) || ( num > 0x7FFFFFFF)){
num = ;
break;
}
}
else{
num = ;
break;
}
}
if(str[index] == '\0'){
now_status = kvalid;
}
return num;
}
};
或者修改为
class Solution {
public:
enum status {kvalid = ,kinvalid};
int now_status = kvalid;
int StrToInt(string str) {
now_status = kinvalid;
long long num = ;
int index = ;
bool minus = false;
if(str.size() != && str[index] != '\0'){
if(str[index] == '+'){
index++;
}
else if(str[index] == '-'){
minus = true;
index++;
}
if(str[index] != '\0'){
num = StrToIntCore(str,minus,index);
}
}
return int(num);
}
long long StrToIntCore(string str,bool minus,int index){
int length = str.size();
long long num = ;
int flag = minus ? - : ;
for(;index < length;index++){
if(str[index] >= '' && str[index] <= ''){
num = num* + flag * (str[index]-'');
if(( num < (signed int)0x80000000) || ( num > 0x7FFFFFFF)){
num = ;
break;
}
}
else{
num = ;
break;
}
}
if(str[index] == '\0'){
now_status = kvalid;
}
return num;
}
};
剑指offer49 把字符串转换成整数的更多相关文章
- 剑指offer——把字符串转换成整数(c++)
题目描述请你写一个函数StrToInt,实现把字符串转换成整数这个功能.当然,不能使用atoi或者其他类似的库函数. 示例 1:输入: " -42"输出: -42解释: 第一个非空 ...
- 剑指Offer 把字符串转换成整数
题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符串不是一个合法的数值则返回0 输入描述: 输入一个字符串,包括数字字母符号,可以为空 输出描述: 如果是合法 ...
- 剑指Offer——把字符串转换成整数
题目描述: 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符串不是一个合法的数值则返回0 输入描述: 输入一个字符串,包括数字字母符号,可以为空 输出描述: 如果 ...
- 剑指offer--15.把字符串转换成整数
stringstream做这个真的很舒服 ------------------------------------------------------------------------------- ...
- 【Java】 剑指offer(67) 把字符串转换成整数
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 请你写一个函数StrToInt,实现把字符串转换成整数这个功能 ...
- 剑指Offer - 九度1508 - 把字符串转换成整数
剑指Offer - 九度1508 - 把字符串转换成整数2014-02-06 23:46 题目描述: 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 输入: 输入可能包含多个测试样例 ...
- 剑指 Offer 67. 把字符串转换成整数 + 字符串
剑指 Offer 67. 把字符串转换成整数 Offer_67 题目描述 题解分析 java代码 package com.walegarrett.offer; /** * @Author WaleGa ...
- 把字符串转换成整数 牛客网 剑指Offer
把字符串转换成整数 牛客网 剑指Offer 题目描述 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串 ...
- 力扣 - 剑指 Offer 67. 把字符串转换成整数
题目 剑指 Offer 67. 把字符串转换成整数 思路1 根据题意,要解决这题,首先要判断的条件有: 不包括首位空格 第一位必须为:+.-.数字三者其一,否则不合法 数字必须连续的,如果遇到非数字, ...
随机推荐
- 用navigator.geolocation.getCurrentPosition在IOS10以上的系统无法定位
昨天老板告诉我代码有Bug(定位失败),于是各种测试最终发现IOS10以上版本手机不能成功(穷,买不起iphone,测试不完全),先贴失败代码: var city =""; nav ...
- pthread_cond_wait函数的学习以及其他
pthread_cond_wait() 前使用 while 讲解2009-10-27 9:33LINUX环境下多线程编程肯定会遇到需要条件变量的情况,此时必然要使用pthread_cond_wait( ...
- Ancient Messages UVA - 1103
题目链接:https://vjudge.net/problem/UVA-1103 题目大意:每组数据包含H行W列的字符矩阵(H<=200,W<=50) 每个字符为为16进制 你需要把它转 ...
- IE浏览器兼容性问题解决方案
一.CSS常见问题 1.H5标签兼容性 解决方案:<script src="http://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.j ...
- B树和B+树对比,为什么MySQL数据库索引选择使用B+树?
一 基础知识 二叉树 根节点,第一层的节点 叶子节点,没有子节点的节点. 非叶子节点,有子节点的节点,根节点也是非叶子节点. B树 B树的节点为关键字和相应的数据(索引等) B+树 B+树是B树的一个 ...
- schema的元素数据类型(复杂数据类型)
1.简单元素的声明 <xs:element name="元素名称" type="xs:string" default="默认值" mi ...
- 你真的了解 advice, joinpoint,pointcut,aspect吗?
假设我们有一个很普通的Employee类,在某些方法被调用时,这个类里的方法也被调用. class Employee{ public String getName(int id){....} priv ...
- spring注入bean的五种方式
1.属性注入 2.构造方法注入 3.静态工厂注入 package com.voole.factorybeans; import com.voole.beans.TestBean; public cla ...
- get post put delete
get:获取资源 幂等 post:执行不安全和非幂等操作(幂等:多次请求于一次请求的效果一样) put:更新资源 幂等 delete:删除资源 幂等 如何理解幂等: public book { p ...
- springmvc实现文件下载到Android手机设备pda端
1:首先要添加相关得jar文件,在pom.xml中 <dependency> <groupId>commons-fileupload</groupId> <a ...