【LeetCode-每日一題】-67. 二進制求和

1. 題目描述

在這裏插入圖片描述

2. 題目分析

  1. 簡單的模擬,利用二進制進行模擬的加減。
  2. 兩個字符串從後往前遍歷,分別相加(sum)
  3. 若 sum == 0 則當前添加的爲0
  4. 若 sum == 1 則當前添加的爲1
  5. 若 sum == 2 則當前添加的爲0且將sum的值 / 2(也就是當再次回來的時候,需要從1開始加)

3. 題目代碼

class Solution {
  public static String addBinary(String a, String b) {
		int sum = 0;
		StringBuilder ans = new StringBuilder();
		int n = Math.max(a.length(), b.length());
		for (int i = 0; i < n; i++) {
			if (i < a.length()) {
				sum += (a.charAt(a.length() - 1 - i) - '0'); // 轉換成整數
			}
			if (i < b.length()) {
				sum += (b.charAt(b.length() - 1 - i) - '0');
			}
			ans.append(sum % 2);
			sum = sum / 2;
		}
		System.out.println(ans.toString());
		if (sum > 0) {
			ans.append('1');
		}
		ans.reverse();
		return ans.toString();
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章