1. 程式人生 > >簡直off: 把字串轉換成整數

簡直off: 把字串轉換成整數

文章目錄

前言

最近有道雲筆記老是沒響應,會員也這樣,所以把演算法的筆記公開到這個csdn,也算是公開的鞭策。

題目常練習起點位置: https://www.nowcoder.com/ta/coding-interviews?asc=false&order=knowledgePoint

題目

在這裡插入圖片描述

解答

public class Solution {
    public int StrToInt(String str) {
        if (str == null || str.
length() == 0) return 0; char [] chars = str.toCharArray(); boolean hasSign = false; boolean isNeg = false; if (chars[0] == '+' || chars[0] == '-') hasSign = true; if (chars[0] == '-') isNeg = true; for (char c : chars) { if (c >= 'a' &&
c <= 'z') { return 0; } } int ret = 0; if (hasSign) { for (int i = 1; i < chars.length; i++) { ret = ret * 10 + (chars[i] - '0'); } if (isNeg){ ret *= -1; } }
else { // no sign for (int i = 0; i < chars.length; i++) { ret = ret * 10 + (chars[i] - '0'); } } return ret; } }

恭喜你通過本題
執行時間:17ms

佔用記憶體:9004k

改進

if (c >= 'a' && c <= 'z') {
                return 0;
            }

塞到下面的迴圈裡,沒有必要兩次遍歷

for (int i = 1; i < chars.length; i++) {
	// ADD HERE
	if (c /* 也就是chars[i]*/ >= 'a' && c <= 'z') {
        return 0;
   }
   ret = ret * 10 + (chars[i] - '0');
}