[LeetCode] String to Integer (atoi)

题意

给出一个字符串,trim 之后,按照 PHP 的方式将其转成 int。

题解

好吧……“按照 PHP 的方式”……

首先,可以以 + 或者 - 开头。其次,转换不下去的话就停止。

最后,把结果限定在 int 范围内。

第一次尝试

正则表达式大法好啊,写起来简单啊!

先做 trim,然后正则出来第一个结果,然后 int() 一下就好了。如果没有结果,pass。

这种做法呢,还有一个好处:如果说让你把串中所有的数字都转换出来,也是超级简单的:match 改为 findall 就好了。超级省心。

缺点么…… 时间,时间。

代码

运行结果

1047 / 1047 test cases passed.
Status: Accepted
Runtime: 159 ms

Your runtime beats 1.08% of pythonsubmissions.

OK 我不是最慢的~

第二次尝试

没啥技巧…… 最最传统的做法。

代码

运行结果

1047 / 1047 test cases passed.
Status: Accepted
Runtime: 92 ms

其他想法

虽然传统办法比第一次正则表达式的办法快了不少,但是还是很慢啊。所以呢,可以用一个 ptr 记录当前最后位置,这样能少做一些乘法。

桩程序

发表评论

电子邮件地址不会被公开。 必填项已用*标注