【劍指Offer】49把字符串轉換成整數

題目描述

將一個字符串轉換成一個整數(實現Integer.valueOf(string)的功能,可是string不符合數字要求時返回0),要求不能使用字符串轉換整數的庫函數。 數值爲0或者字符串不是一個合法的數值則返回0。python

時間限制:1秒;空間限制:32768K;本題知識點:字符串函數

解題思路

本題利用ASCII碼來求解,要充分考慮各類狀況,如輸入爲空、輸入首字符爲+/-號,輸入只有+/-號等。code

Python代碼:utf-8

# -*- coding:utf-8 -*-
class Solution:
    def StrToInt(self, s):
        # write code here
        result = 0
        sign = 1
        if not s:
            return 0
        if ord(s[0]) == ord('+'): #第一個字符是+號
            s=s[1:]
            sign = 1
            if len(s)==0: #只有一個+號
                return 0
        if ord(s[0]) == ord('-'): #第一個字符是-號
            s=s[1:]
            sign = 0
            if len(s)==0: #只有一個-號
                return 0
        for i in range(len(s)):
            if ord(s[i])>=ord('0') and ord(s[i])<=ord('9'):
                result += ord(s[i])-ord('0')
            else:
                return 0
            result *= 10
        result /= 10
        return result if sign else -result
相關文章
相關標籤/搜索