Skip to main content
Back to problems
#67
Easy Algorithms

Add binary

Math String Bit Manipulation Simulation
57.7% acceptance
Jan 12, 2026
10688
1109
Given two binary strings a and b, return their sum as a binary string.

Solution

Rust
Time O(n)
Space O(1)
LeetCode
solution.rs
impl Solution {
  pub fn add_binary(a: String, b: String) -> String {
    let a: Vec<char> = a.chars().collect();
    let b: Vec<char> = b.chars().collect();
    let mut result = String::new();
    let mut carry = 0;
    let mut i = a.len() as i32 - 1;
    let mut j = b.len() as i32 - 1;
    
    while i >= 0 || j >= 0 || carry > 0 {
      let mut sum = carry;
      
      if i >= 0 {
        sum += a[i as usize].to_digit(10).unwrap();
        i -= 1;
      }
      
      if j >= 0 {
        sum += b[j as usize].to_digit(10).unwrap();
        j -= 1;
      }
      
      result.push(char::from_digit(sum % 2, 10).unwrap());
      carry = sum / 2;
    }
    
    result.chars().rev().collect()
  }
}