日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

【LeetCode笔记】剑指 Offer 67. 把字符串转换成整数 (Java、字符串)

發布時間:2024/7/23 java 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【LeetCode笔记】剑指 Offer 67. 把字符串转换成整数 (Java、字符串) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 題目描述
  • 思路 && 代碼
      • 二刷

題目描述

  • 老閱讀題了,感覺這道題有點類似寫業務接口。

思路 && 代碼

  • 首先,把情況劃分一下:
  • 非正常值,直接給 0(這個實際上可以劃分到2的代碼中)
  • 可取正常值的情況
  • 溢出的情況(上溢 && 下溢)
  • 然后,分情況逐個寫即可
class Solution {public int strToInt(String str) {// 去除首尾空格char[] strArr = str.trim().toCharArray();if(strArr.length == 0) {return 0;}int ans = 0;int index = 0;boolean isNegative = false;// 首位為 + - 的情況if (strArr[0] == '-' || strArr[0] == '+') {index++;isNegative = (strArr[0] == '-');}// 順帶排除第一個非空字符無效的情況了for (; index < strArr.length && strArr[index] >= '0' && strArr[index] <= '9'; index++) {// 溢出的情況:負數 && 正數if (isNegative) {if (ans > 214748364 || (ans == 214748364 && strArr[index] > '8')) {return -2147483648;}}// 正數情況else if (ans > 214748364 || (ans == 214748364 && strArr[index] > '7')) {return 2147483647;}ans *= 10;ans += strArr[index] - '0';}if (isNegative) {ans *= -1;}return ans;} }

二刷

  • 只能說老業務題了
class Solution {public int strToInt(String str) {char[] arr = str.trim().toCharArray();if(arr.length == 0) {return 0;}int isNegative = arr[0] == '-' ? 1 : 0;int ans = 0;if(arr[0] >= '0' && arr[0] <= '9') {ans = arr[0] - '0';}else if(arr[0] != '+' && arr[0] != '-') {return ans;}for(int i = 1; i < arr.length; i++) {// case 1: 中斷if(arr[i] < '0' || arr[i] > '9') {break;}// case 2: 越界if((ans > 214748364) || (ans == 214748364 && arr[i] - '0' > 7 + isNegative)) {ans = isNegative == 1 ? Integer.MIN_VALUE : Integer.MAX_VALUE;break;}// case 3: 繼續ans *= 10;ans += arr[i] - '0';}return isNegative == 1 ? -1 * ans : ans;} }

總結

以上是生活随笔為你收集整理的【LeetCode笔记】剑指 Offer 67. 把字符串转换成整数 (Java、字符串)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。