-
2019-08-15 08:28:38
题目
将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符 合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是 一个合法的数值则返回0。 输入描述: 输入一个字符串,包括数字字母符号,可以为空 输出描述: 如果是合法的数值表达则返回该数字,否则返回0
class Solution { public: int StrToInt(string str) { int len = str.length(); int s; int result; if(len<=0) result = 0; if(str[0]=='-') s = -1; else s = 1; for(int i = (str[i]=='-'||str[i]=='+')?1:0;i<len;++i) { if(!(str[i]>='0' && str[i]<='9')) return 0; result = result*10+str[i]-'0'; } return result*s; } };
更多相关内容 -
字符串转换成整数
2017-08-09 21:59:59将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 -
剑指offer:Python 把字符串转换成整数
2019-12-14 08:10:55Python 把字符串转换成整数 绝对通过的方法阅读目录
题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
输入描述:输入一个字符串,包括数字字母符号,可以为空
输出描述:如果是合法的数值表达则返回该数字,否则返回0
示例:
输入
+2147483647
1a33输出
2147483647
0思路及Python实现
用正则表达式
import re class Solution: def StrToInt(self, s): if s == "": return 0 ret = re.search(r"^([+-])?\d+$", s) if not ret or ret.group() == "-2147483649" or ret.group() == "2147483648": return 0 else: return int(ret.group())
利用码值来求解
class Solution: def StrToInt(self, s): if s == "" or s == "-2147483649" or s == "2147483648": return 0 flag = 1 # 标明正负的符号 wei = 0 # 位数指针 num = 0 # 结果 if s[0] in "+-": if s[0] == "+": flag = flag else: flag *= -1 # 如果是-,就将flag变成-1 s = s[1:] # 将第一个符号,去除 for i in range(len(s) - 1, -1, -1): # 从后往前遍历字符串 if s[i] not in "0123456789": # 先检查是否合法 return 0 else: # 结果加上当前字符*位数 # 字符“0”对应的ASCII码为48。对获得的字符串中的每个字符, # 求其ASCII码,减去48即为对应位上的数值。 num += (ord(s[i]) - 48) * (10 ** wei) wei += 1 # 位数每遍历一个字符,就要进一位 return num * flag # 注意正负号
-
JavaScript将字符串转换为整数的方法
2020-12-12 23:43:06本文实例讲述了JavaScript将字符串转换为整数的方法。分享给大家供大家参考。具体如下: var s='1'; var s2='2'; alert(parseInt(s) parseInt(s2)); 希望本文所述对大家的javascript程序设计有所帮助。 -
Java 实现把字符串转换成整数
2018-05-10 10:07:06将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 。输入一个字符串,包括数字字母符号,可以为空; 如果是合法的数值表达则返回该数字,否则返回0;...将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 。
输入一个字符串,包括数字字母符号,可以为空;
如果是合法的数值表达则返回该数字,否则返回0;
代码
public static int parseString2Int(String str) { if (Strings.isNullOrEmpty(str)) { return 0; } // 数字的正负,默认是正数 int symbol = 1; char[] array = str.toCharArray(); int sum = 0; // 如果第一位是'-',说明结果应该是个负数,'+'不需要处理symbol // 同时替换该位置上的字符为0,这样在下面的处理中,可以认为是跳过该字符 // 因为0 * 10还是0 if (array[0] == '-') { symbol = -1; array[0] = '0'; } else if (array[0] == '+') { array[0] = '0'; } for (int i = 0; i < array.length; i++) { // 如果不是数字,而是其他字母符号一类非数字字符,则直接返回0 if (array[i] < '0' || array[i] > '9') { return 0; } // sum * 10是为了将当前已获得数字整体左移一位,让新的数字可以处于个位上,比如"12" // 第一次拿出1,在第二次拿出2的时候,1应该在十位上,2在个位上,所以 1 * 10 + 2 = 12 // array[i] - '0',这里减去字符'0',是因为字符'0'-'9'的ascii码值与其对应的数字相差48,而'0'的ascii码值正好是48 sum = sum * 10 + array[i] - '0'; } return sum * symbol; } public static void main(String[] args) { int result = parseString2Int("123"); System.out.println(result); }
-
把字符串转换成整数(Java实现)
2017-05-19 12:26:56本题为剑指offer面试题49 ... 时间限制:1秒空间限制:32768K ...将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 输入描述: 输入一个字符本题为剑指offer面试题49
牛客网测试地址::https://www.nowcoder.com/questionTerminal/1277c681251b4372bdef344468e4f26e
- 时间限制:1秒空间限制:32768K
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
输入描述:
输入一个字符串,包括数字字母符号,可以为空
输出描述:
如果是合法的数值表达则返回该数字,否则返回0
输入例子:
+2147483647 1a33
输出例子:
2147483647 0
package go.jacob.day519; /* * [编程题]把字符串转换成整数 * 三个易错点: * 1.考虑异常输入; * 2.异常输入和'0'的返回值都为0,应该设置一个全局变量来区分; * 3.判断字符串输入的第一位是不是正负号; * 4.考虑整数的上下溢出。Integer.MAX_VALUE (2^31-1) Integer.MIN_VALUE(-2^31) * * 关于判断是否溢出的问题 * 本人认为java热门第一判断是否溢出是错误的,举个反例 * 当输入为value=2147483648时,在计算机内部的表示应该是-2147483648 * 显然value>Integer.MAX_VALUE是不成立的 * */ public class Demo2 { public static void main(String[] args) { String str = "-2147483648"; System.out.println(StrToInt(str)); System.out.println(flag); } // 设置一个全局变量,来判断:当输出为0时,是字符串输入异常还是输入字符串为'0' public static boolean flag; public static int StrToInt(String str) { flag = false; //判断输入是否合法 if (str == null || str.trim().equals("")) { flag = true; return 0; } // symbol=0,说明该数为正数;symbol=1,该数为负数;start用来区分第一位是否为符号位 int symbol = 0; int start = 0; char[] chars = str.trim().toCharArray(); if (chars[0] == '+') { start = 1; } else if (chars[0] == '-') { start = 1; symbol = 1; } int result = 0; for (int i = start; i < chars.length; i++) { if (chars[i] > '9' || chars[i] < '0') { flag = true; return 0; } result = result * 10 + (int) (chars[i] - '0'); System.out.println("1:" + result); /* * 本人认为java热门第一判断是否溢出是错误的,举个反例 * 当输入为value=2147483648时,在计算机内部的表示应该是-2147483648 * 显然value>Integer.MAX_VALUE是不成立的 */ if ((symbol == 0 && result < 0) || (symbol == 1 && result < 0 && result > Integer.MIN_VALUE)) { flag = true; return 0; } } // 注意:java中-1的n次方不能用:(-1)^n .'^'异或运算 // 注意,当value=-2147483648时,value=-value result = (int) Math.pow(-1, symbol) * result; return result; } }
-
【C++】把字符串转换成整数
2020-02-25 17:59:29将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 class Solution { public: int StrToInt(string s) { long long a = 0; int f = 0; if (s.empty())... -
把字符串转换成整数(用c++实现)
2020-06-07 16:17:13输入一个字符串,包括数字字母符号,可以为空 输出数字,若有字符则输出0 示例: 输入+123456 11sfsf46 输出: 123456 0 #include<iostream> #include<string> using namespace std; int main... -
把字符串转换成整数(最详细解答)
2021-12-04 12:39:12把一个一个字符以整数的形式来进行输出,需要考虑相互转化的问题 不能使用库函数!!! 首尾会有空格(进行去空格操作,可以减少不必要的判断) 区分正负正数 结果可能会越界,题目给的是Integer类型,当超过... -
C语言实现把字符串转换成整数
2017-06-29 10:11:50@函数名称: atol 函数原型: long atol(char ... 函数功能: 将字符串转换成一个长整数 函数返回: 转换后的数值 参数说明: str-待转换为长整型的字符串 所属文件: #include #include -
JAVA把字符串转换成整数
2019-03-14 18:35:13剑指offer: 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。 public ... -
49. 把字符串转换成整数
2018-08-08 13:22:19将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。 输入描述: 输入一个... -
把字符串转换成整数
2018-08-12 12:31:38将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。 输入描述: 输入一个... -
C#中将字符串转换为整型的三种解决方法总结
2020-12-25 18:54:46在C#中,要将一个字符串或浮点数转换为整数,基本上有三种方法:(1)使用强制类型转换:(int)浮点数 (2)使用Convert.ToInt32(string)(3)使用int.Parse(string)或int.TryParse(string,out int) 在实际使用时,... -
c语言,字符串转换成整数
2021-05-19 10:40:54c语言的数字字符串转换为整数,1.可接受“123 2123”处理为1232123;2.空指针、正负号、非纯数字字符串、数据越界溢出的错误处理。#include#include#include//子函数的声明int StrToInt(char * string);void main(){/... -
字符串转换成整数(3种方法)
2020-10-23 16:41:16请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下: 如果第一个非空字符为正或者负号时,则将该符号... -
C++:字符串转换成整数
2021-03-23 09:51:19C 库函数 int atoi(const char *str) 把参数 str 所指向的字符串转换为一个整数(类型为 int 型)。 声明 下面是 atoi() 函数的声明。 int atoi(const char *str) 参数 str – 要转换为整数的字符串。 返回值 该... -
【牛客网】---把字符串转换成整数
2019-11-13 20:43:38【牛客网】—把字符串转换成整数 题目如下: 解题思路:通过首位判断符号,设置符号标记,若首位是‘+’或‘-’,变成‘0’,在检验每一位的同时,将其变成整数。 代码如下: class Solution { public: int ... -
@ 剑指offer(python)把字符串转换成整数
2019-05-21 16:28:54将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。 思路 注意字符串首的... -
把字符串转换成整数java实现
2017-10-07 21:17:30将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 思路:将字符串转换成字符数组,然后遍历字符数组,首先判断符号,然后遍历整个字符数组获取字符,... -
把字符串转换成整数(不能用库函数进行转化)(c++,每日一练)
2020-06-25 00:16:48把一个字符串转换成一个整数,要求不能使用库函数,数值是0或不是一个合法的数值返回0 class Solution { public: int StrToInt(string str) { int x=0,k; for(int i=0;i<str.size();i++) { if(str[i]=='... -
把字符串转换成整数(字符串)
2017-11-29 19:42:07题目描述:将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。 输入描述:输入一个字符串,包括数字字母符号,可以为空 输出描述:如果是合法的数值... -
python 把字符串转换成整数
2019-04-14 20:43:45但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。 ''' # -*- coding:utf-8 -*- class Solution: def StrToInt(self, s): # wr... -
在 Python 中如何将字符串转换为整数
2021-12-29 22:36:03类似于内置的 str() 方法,Python 语言中有一个很好用的 int() 方法,可以将字符串对象作为参数,并返回一个整数。 用法示例: #Hereageisastringobject age="18" print(age) #Convertingastringtoaninteger ... -
把字符串转换成整数 java
2018-11-09 22:30:56将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。 输入描述: 输入一个字符... -
如何把一个字符串转换成整数
2020-02-26 12:27:36请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面... -
剑指offer——把字符串转换成整数(c++)
2019-06-11 20:31:42请你写一个函数StrToInt,实现把字符串转换成整数这个功能。 当然,不能使用atoi或者其他类似的库函数。 示例 1: 输入: " -42" 输出: -42 解释: 第一个非空白字符为 '-', 它是一个负号。 示例 2: 输入: "4193 with ... -
如何在Python中将字符串转换为整数
2020-11-21 04:15:33Python中的所有数据类型...在本教程中,我们将向您展示如何将Python字符串转换为整数。Python int()函数内置int()函数从给定的数字或字符串返回一个十进制整数对象。它采用以下形式:int(x, base=10)函数接受两... -
Python:把字符串转换成整数
2017-07-20 02:01:26将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 # -*- coding:utf-8 -*- ''' 把字符串转换成整数 题目描述 将一个字符串转换成一个整数,要求不...
收藏数
502,384
精华内容
200,953