add binary - leetcodegiven two binary strings, return their sum (also a binary string).
for example,
a ="11"
b ="1"
return"100"
.
只需要模擬我們正常手算二進位制加法的過程即可。首先是確定輸出的長度,這個可以由兩個輸入字串中最長的長度來確定。
然後由於已經獲得兩個輸入串的長度,所以可以從兩個串的末尾開始遍歷,知道兩個遍歷的量都變為0。
注意的是,當乙個字串已經被遍歷完,但另外乙個還在遍歷的時候,我們應該用0
代替遍歷完的字串應該有的值。
然後就是進製的問題,計算過程中可能會出現[2, 3]
的結果,所以需要用結果是否大於1
來判斷而不是結果是否等於2
來判斷。
如果最後的進製標記還是true
的話,我們要在最終得到的字串結果前面新增乙個"1"
。
具體**如下:
class solution
else
if (b.empty())
string ret(max(i,j) + 1, '0');
bool carry(false);
while (i >= 0 || j >= 0)
else
int curj(0);
if (j >= 0)
else
int cur(curi + curj + carry);
ret[max(i,j) + 1] = (cur % 2) + '0';
if (cur > 1)
else
}if (carry)
return ret;
}};
第十七周總結
周工作總結及計畫表 部 門 理工大學 姓 名 冉濤 入 職 時 間 2015.7.5 本週已完成工作內容及總結 1 基本完成課程設計要求的三道題目,但還有一些小地方沒有做好,主要是在一些異常處理方面,主要是從控制台輸入時的型別轉換異常,以及gui介面的輸入為空的異常和型別轉換異常。2 課程設計的第四...
第十七周總結
本週主要學習了spring框架和mybatis框架,接觸到框架後最大的感觸就是原來 編寫可以變得如此簡便,之前複雜的編寫過程被簡化了許多,專案的開發效率自然也得到極大提公升。感覺在spring的學習中最大的困難是對這種框架模式的理解,學了一天到最後也不知道spring到底是什麼,可以用來幹什麼,怎麼...
第十七周專案1
檔名稱 test.cpp 完成日期 2014年12月21日 版本號 v1.0 問題描述 閱讀下面的程式,寫出期望中的執行結果。上機執行對照,並用單步執行的方法再次體會,完全掌握用指標和引用作為形式引數的用法。輸入描述 略 程式輸出 略 include using namespace std void...