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

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

【LeetCode笔记】415. 字符串相加(Java、字符串)

發(fā)布時(shí)間:2024/7/23 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【LeetCode笔记】415. 字符串相加(Java、字符串) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目描述

  • 不能直接把字符串轉(zhuǎn)換成整數(shù)(會(huì)溢出)
  • 面試被問(wèn)過(guò),今天刷面經(jīng)又刷到。。那就索性水一篇文吧!
  • 更新:原題就是 leetcode 415

思路 & 代碼

  • 只要理好字符串s、字符串t、答案字符串的對(duì)應(yīng)位關(guān)系就好啦!
  • 注意 carry 位的考慮:其中一個(gè)字符串已經(jīng)結(jié)束時(shí),也還需要考慮。
    加法結(jié)束后,還要考慮最后一次
  • 注意進(jìn)行字符之間的加法的時(shí)候不要算亂了= =
  • 時(shí)間復(fù)雜度 O(max(m, n)),取兩字符串的最大長(zhǎng)度
import java.util.*;public class Solution {/*** 代碼中的類(lèi)名、方法名、參數(shù)名已經(jīng)指定,請(qǐng)勿修改,直接返回方法規(guī)定的值即可* 計(jì)算兩個(gè)數(shù)之和* @param s string字符串 表示第一個(gè)整數(shù)* @param t string字符串 表示第二個(gè)整數(shù)* @return string字符串*/public String solve (String s, String t) {int sL = s.length();int tL = t.length();int maxL = Math.max(sL, tL);// 從后往前,從小到大char[] ans = new char[maxL];int carry = 0;// 時(shí)間復(fù)雜度 O(max(m, n))for(int i = sL - 1, j = tL - 1; maxL > 0; i--, j--, maxL--){int nowSum = 0;// 一方先結(jié)束的情況if(i < 0){nowSum = t.charAt(j) - '0' + carry;}// 同上else if(j < 0){nowSum = s.charAt(i) - '0' + carry;}// 都沒(méi)結(jié)束的情況(注意,這三種情況都要考慮 carry 位)else{nowSum = s.charAt(i) + t.charAt(j) - '0' - '0' + carry;}// 進(jìn)位處理carry = nowSum / 10;nowSum %= 10;ans[maxL - 1] = (char)(nowSum + '0');}String ansS = new String(ans);// 最后一次進(jìn)位處理if(carry == 1){ansS = '1' + ansS;}return ansS;// write code here} }

更新版

  • 刷到評(píng)論區(qū)大佬的做法,很nice
  • while 循環(huán)寫(xiě)得很巧妙。
class Solution {public String addStrings(String num1, String num2) {StringBuilder sb = new StringBuilder();int carry = 0;int i = num1.length() - 1, j = num2.length() - 1;while(i >= 0 || j >= 0 || carry != 0) {if(i >= 0) {carry += num1.charAt(i--) - '0';}if(j >= 0) {carry += num2.charAt(j--) - '0';}sb.append(carry % 10);carry /= 10;}return sb.reverse().toString();} }

總結(jié)

以上是生活随笔為你收集整理的【LeetCode笔记】415. 字符串相加(Java、字符串)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。