摘要:給定兩個(gè)二進(jìn)制字符串,返回他們的和用二進(jìn)制表示。返回的數(shù)值是以開(kāi)頭,表明返回的數(shù)值是二進(jìn)制函數(shù)用于將一個(gè)字符串或數(shù)字轉(zhuǎn)換為整型。指定為非十進(jìn)制時(shí),需以字符串形式傳入從第三個(gè)元素開(kāi)始截取,忽略
(python、java)
Given two binary strings, return their sum (also a binary string).
The input strings are both non-empty and contains only characters 1 or 0.
給定兩個(gè)二進(jìn)制字符串,返回他們的和(用二進(jìn)制表示)。
輸入為非空字符串且只包含數(shù)字 1 和 0。
Example 1:
Input: a = "11", b = "1"
Output: "100"
Example 2:
Input: a = "1010", b = "1011"
Output: "10101"
解題思路(Java):
Java:由于Java語(yǔ)言不像 C/C++ ,Java字符串 String 不可變,比較字符串不能用 “=” ,”=“ 會(huì)比較字符串是否為同一個(gè)對(duì)象,而不是比較字符串內(nèi)容是否相同。StringBuilder 可操作性較好,可用來(lái)記錄每一位數(shù) 相加后的最終值。
所以這道題輸入字符串可利用 chatAt() 方法(用于返回指定索引處的字符。索引范圍為從 0 到 length() - 1。)轉(zhuǎn)化為char字符,減去字符 ‘0’ ,得 int 型數(shù)值 0 或 1 ,分別與sum累加 。
java:
class Solution {
public String addBinary(String a, String b) { int i=a.length()-1,j=b.length()-1,tmp=0,sum; StringBuilder str=new StringBuilder(); while (i>=0||j>=0){ sum=tmp; if(i>=0) sum += a.charAt(i--)- "0"; if(j>=0) sum += b.charAt(j--)- "0"; tmp=sum/2;//tmp記錄是否進(jìn)一位 str.append(sum%2);//sum%2得余數(shù),即為該位 最終數(shù)字 } if(tmp!=0) str.append(tmp); return str.reverse().toString();//將 StringBuilder 所得倒置后即為答案,轉(zhuǎn)為 String返回 }
}
解題思路(python3):
python3明顯靈活很多:
bin()函數(shù) -- 返回一個(gè)整數(shù) int 或者長(zhǎng)整數(shù) long int 的二進(jìn)制表示。
返回的數(shù)值是以0b開(kāi)頭,表明返回的數(shù)值是二進(jìn)制
int() 函數(shù)用于將一個(gè)字符串或數(shù)字轉(zhuǎn)換為整型。
class int(x, base=10)
x -- 字符串或數(shù)字。
base -- 進(jìn)制數(shù),默認(rèn)十進(jìn)制。(指定base為非十進(jìn)制時(shí),x 需以字符串形式傳入)
python3:
class Solution:
def addBinary(self, a: str, b: str) -> str: """ :type a: str :type b: str :return: str """ return bin(int(a,2)+int(b,2))[2:] #[2:]從第三個(gè)元素開(kāi)始截取,忽略 0b
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/75019.html
摘要:給定兩個(gè)二進(jìn)制字符串,返回他們的和用二進(jìn)制表示。返回的數(shù)值是以開(kāi)頭,表明返回的數(shù)值是二進(jìn)制函數(shù)用于將一個(gè)字符串或數(shù)字轉(zhuǎn)換為整型。指定為非十進(jìn)制時(shí),需以字符串形式傳入從第三個(gè)元素開(kāi)始截取,忽略 (python、java)Given two binary strings, return their sum (also a binary string).The input strings a...
摘要:題目要求將兩個(gè)二進(jìn)制字符串相加結(jié)果以二進(jìn)制字符串的形式返回要格外注意可能會(huì)在最高位存在進(jìn)位想要了解更多開(kāi)發(fā)技術(shù),面試教程以及互聯(lián)網(wǎng)公司內(nèi)推,歡迎關(guān)注我的微信公眾號(hào)將會(huì)不定期的發(fā)放福利哦 題目要求:將兩個(gè)二進(jìn)制字符串相加結(jié)果以二進(jìn)制字符串的形式返回要格外注意可能會(huì)在最高位存在進(jìn)位 /** * @author rale * * Given two binary strings, r...
摘要:,,這道題就是求兩個(gè)表示為字符串形式的二進(jìn)制數(shù)字的和。最初我的想法是直接對(duì)兩個(gè)字符串相對(duì)應(yīng)的位進(jìn)行直接運(yùn)算,再用一個(gè)變量來(lái)表示進(jìn)位,這里我選擇將較短的字符串前面用補(bǔ)位,以獲得兩個(gè)相同長(zhǎng)度的字符串進(jìn)行逐位運(yùn)算。 Given two binary strings, return their sum (also a binary string).For example,a = 11,b = ...
摘要:月下半旬攻略道題,目前已攻略題。目前簡(jiǎn)單難度攻略已經(jīng)到題,所以后面會(huì)調(diào)整自己,在刷算法與數(shù)據(jù)結(jié)構(gòu)的同時(shí),攻略中等難度的題目。 Create by jsliang on 2019-07-30 16:15:37 Recently revised in 2019-07-30 17:04:20 7 月下半旬攻略 45 道題,目前已攻略 100 題。 一 目錄 不折騰的前端,和咸魚(yú)有什么區(qū)別...
摘要:在線網(wǎng)站地址我的微信公眾號(hào)完整題目列表從年月日起,每天更新一題,順序從易到難,目前已更新個(gè)題。這是項(xiàng)目地址歡迎一起交流學(xué)習(xí)。 這篇文章記錄我練習(xí)的 LeetCode 題目,語(yǔ)言 JavaScript。 在線網(wǎng)站:https://cattle.w3fun.com GitHub 地址:https://github.com/swpuLeo/ca...我的微信公眾號(hào): showImg(htt...
閱讀 2021·2019-08-30 15:52
閱讀 2975·2019-08-29 16:09
閱讀 1323·2019-08-28 18:30
閱讀 2453·2019-08-26 12:24
閱讀 1090·2019-08-26 12:12
閱讀 2273·2019-08-26 10:45
閱讀 565·2019-08-23 17:52
閱讀 810·2019-08-23 16:03