200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > angular 字符串转换成数字_Day49:将字符串转换成整数

angular 字符串转换成数字_Day49:将字符串转换成整数

时间:2022-09-07 19:06:25

相关推荐

angular 字符串转换成数字_Day49:将字符串转换成整数

剑指Offer_编程题——将字符串转换成整数

题目描述:

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

输入描述:

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

输出描述:

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

示例1

输入:

+2147483647

1a33

输出:

2147483647

0

具体要求:

时间限制: C/C++ 1秒,其他语言2秒

空间限制: C/C++32M,其他语言64M

具体实现

思路一:

1、将输入的字符串转换成字符数组。从大下标开始,反向对每个字符逐个处理。

2、若当前字符的ASII码在[48-57],注意是闭区间。则代表当前字符是[0~9],继续判断下一个。

3、当遍历到下标为0的字符时,需要进行特殊情况的几个判断。包括是否越界,是否是临界值,是否为负号等。

接下来我们用Java实现其思路:

public

代码效果图如图所示

思路二:

1、 先判断首字符是否为负号。

2、 判断当前字符是否表示数字。

3、 (res << 1) + (res << 3) 即 res2+res8=res*10

4、[0-9]的二进制表示低四位刚好就是[0~9]。 (chs[i] & 0xf)即取低四位值。

接下来我们用java和python实现。

1、首先我们用java实现:

public

代码效果图如图所示:

2、接下来我们用python实现:

class

代码效果图如图所示:

总结

本题是主要考察字符串转化为整数,本题较为简单,不过需要我们注意的是int整型数据类型的范围,也就是在java中要考虑其溢出的情况。但是由于python中没有int这一类型,因此不存在溢出的情况,只需要考虑数字以及±*/这些运算符号的ASCII码。本道题我们应用了两种方法将其实现,首先就是将其存在数组里面,然后从右往左进行遍历,转换。另一种就是先判断负号,在进行判断是否为数字,并且通过java以及python两种方式将其实现。因此,我们在做题的时候,应该多次尝试各种方法,扩展自己的思维,写出优质的代码。总之,我们要继续加油,争取早日找到工作,Good Luck!!!

参考文献

[1]ouyangyanlan

[2]天举的博客

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。