擅长:python、mysql、java
<p>我认为迭代版本比递归版本好</p>
<pre><code># Iterative
def atof(s):
s,_,_=s.partition(' ') # eg. this helps by trimming off at the first space
while s:
try:
return float(s)
except:
s=s[:-1]
return 0.0
# Recursive
def atof(s):
try:
return float(s)
except:
if not s:
return 0.0
return atof(s[:-1])
print atof("3 of 12")
print atof("3/12")
print atof("3 / 12")
print atof("3.14 seconds")
print atof("314e-2 seconds")
print atof("-99 score")
print atof("hello world")
</code></pre>