「優選算法刷題」:二進制求和

一、題目

給你兩個二進制字符串?a?和?b?,以二進制字符串的形式返回它們的和。

示例?1:

輸入:a = "11", b = "1"
輸出:"100"

示例?2:

輸入:a = "1010", b = "1011"
輸出:"10101"

二、思路解析

這道題的關鍵在于如何實現進位操作,以及雙指針的移動等問題。

我們要先定義兩個指針 cur1cur2?,分別指向字符串 ab 的末尾,同時利用變量 t 來保存進位值。

通過循環遍歷兩個字符串,將對應位置的字符轉換為數字后相加,并將結果添加到結果字符串 ret 中。最后將結果字符串反轉并返回。

但實現的過程中,還有些細節要處理。

  1. 每次循環,將當前位置上的字符轉換為數字后相加,并加上進位值?t
  2. 將相加的結果取模 2(即除以 2 取余數),得到當前位的值,并更新進位值?t

最后,我們還要把字符串反轉,然后返回即可。

三、完整代碼

class Solution {public String addBinary(String a, String b) {StringBuffer ret = new StringBuffer();int cur1 = a.length() - 1;int cur2 = b.length() - 1;int t = 0;while(cur1 >= 0 || cur2 >= 0 || t != 0){if(cur1 >= 0){t += a.charAt(cur1--) - '0';}if(cur2 >= 0){t += b.charAt(cur2--) - '0';}ret.append((char)('0' + (t % 2)));t /= 2;}ret.reverse();return ret.toString();}
}

以上就是本篇博客的全部內容啦,如有不足之處,還請各位指出,期待能和各位一起進步!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/712324.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/712324.shtml
英文地址,請注明出處:http://en.pswp.cn/news/712324.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Qt應用軟件【測試篇】vargrid內存檢查工具

文章目錄 vargrid介紹vargrid官網vargrid安裝常用命令Valgrind的主要命令vargrid介紹 Valgrind是一個用于構建動態分析工具的框架,能自動檢測許多內存管理和線程錯誤,并詳細分析程序性能。Valgrind發行版包括七個成熟工具:內存錯誤檢測器、兩個線程錯誤檢測器、緩存和分支預…

Java8 - LocalDateTime時間日期類使用詳解

🏷?個人主頁:牽著貓散步的鼠鼠 🏷?系列專欄:Java全棧-專欄 🏷?個人學習筆記,若有缺誤,歡迎評論區指正 前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默&…

redis+定時 模擬滑動窗口實現熔斷降級

業務背景 公司業務現用的通道為 A、B,為了降本,引入新的支付通道 Y,但 Y 通道的穩定性要低于 A、B,系統要能在 Y 通道故障時自動切回到 A、B,等 Y 恢復正常后,再切換到 Y。 乍一看很簡單,不就是…

使用鏈表和數組輸出A~Z的ASCII碼

輸出結果 26個字母以及其對應的ASCII碼 一、使用鏈表創建,注意: 節點需要有next指針初始化時head需要new一下 cur指針代表當前指針,每次不斷的New新的節點,pre指針代表當前指針的前一個指針,每次pre的next指針指向cur…

sql注入攻擊 - cookie注入

環境準備:構建完善的安全滲透測試環境:推薦工具、資源和下載鏈接_滲透測試靶機下載-CSDN博客 一、Cookie 知識介紹 Cookie(HTTP Cookie)是服務器發送到用戶瀏覽器并保存在本地的一小段數據,用于記錄用戶的相關信息和狀態。這些信息通常包括用戶的身份標識、網站偏好設置…

3.1日學習打卡----初學FastDFS(一)

3.1日學習打卡 目錄: 3.1日學習打卡一. 為什么要使用分布式文件系統二. FastDFS簡介核心概念上傳機制下載機制FastDFS環境搭建_LinuxFastDFS指令 一. 為什么要使用分布式文件系統 單機時代 初創時期由于時間緊迫,在各種資源有限的情況下,通常就直接在項…

二分+質因數分解,LightOJ 1138Trailing Zeroes (III)

一、題目 1、題目描述 You task is to find minimal natural number N, so that N! contains exactly Q zeroes on the trail in decimal notation. As you know N! 1 * 2 * ... * N. For example, 5! 120, 120 contains one zero on the trail. 2、輸入輸出 2.1輸入 Input…

HTML---Ajax

文章目錄 目錄 文章目錄 前言 一.Ajax概述 二.原生創建Ajax 三,使用Jquery處理Ajax 總結 一.Ajax概述 AJAX(Asynchronous Javascript And XML)是一種創建交互式網頁應用的網頁開發技術。它使用Javascript語言與服務器進行異步交互,可以傳…

【計算機網絡】五種IO模型與IO多路轉接之select

文章目錄 一、五種IO模型二、非阻塞IO1.fcntl2.實現函數SetNoBlock3.輪詢方式讀取標準輸入 三、I/O多路轉接之select1.初識select2.select函數原型3.socket就緒條件4.select的特點5.select缺點6.select使用案例--只讀取數據的server服務器1.err.hpp2.log.hpp3.sock.hpp4.select…

DBGridEh 的排序

DBGridEh 可以點列抬頭使得記錄按該列排序 不需要寫代碼,只需要設置好,它就能排序。 網上的文章一般寫了如何設置。但一般都少說了一條。 先說如何設置: 1. OptionsEh.AutoSortMarking 設置為 True,如果是設計期屬性面板&…

Linux上搭建并使用ffmpeg(Java)

關于MacOs和Windows系統上使用ffmpeg就不多說了,有很多相關文章,今天給大家分享一個在Linux環境下使用Java語言來使用ffmpeg 一、首先去官網下載一個Linux對應的ffmpeg包 1、進入ffmpeg官網:官網 2、點擊左側導航欄Download 3、選擇Linux對…

如何利用graylog進行容器化日志管理?

Docker日志 當一個容器啟動的時候,它其實是docker deamon的一個子進程,docker daemon可以拿到容器里面進程的標準輸出,然后通過自身的LogDriver模塊來處理,LogDriver支持的方式很多,默認寫到本地文件,也可…

vue自定義實現icon選擇器

<template> <div> <span class"iconStyle" click"selectIcon"> <i :class"value" /> </span> <div class"iconTitle">選擇圖標</div> <el-dialog title"" :visible.sync"…

springboot + nacos + aws secretmanager 做賬號密碼隱私處理

方式一&#xff1a; #nacos配置文件data.yml: spring:cloud:nacos:discovery:ip: ****.comport: 80datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://*********/database?useUnicodetrue&characterEncodingUTF-8&autoReconnecttrue&fail…

java 商機管理系統Myeclipse開發mysql數據庫web結構jsp編程計算機網頁項目

一、源碼特點 java 商機管理系統是一套完善的java web信息管理系統&#xff0c;對理解JSP java編程開發語言有幫助&#xff0c;系統具有完整的源代碼和數據庫&#xff0c;系統主要采用B/S模式開發。開發環境為 TOMCAT7.0,Myeclipse8.5開發&#xff0c;數據庫為Mysql5.0&…

LeetCode142. 環形鏈表 II刷題詳解

今天力扣刷到了一個特別有意思的題目&#xff0c;于是就寫了下面的題解來加深以下理解。 142. 環形鏈表 II - 力扣&#xff08;LeetCode&#xff09; 這個可以分為兩大步去寫&#xff0c;首先要判斷鏈表是否有環&#xff0c;然后如果有環就去找到環的入口&#xff0c;沒有環返…

python3.x的在線與離線安裝純凈版

由于計劃搭建一套使用python自動分析日志的流程&#xff0c;發現我們的測試環境CentOS 7仍然沒有安裝python3&#xff0c;無法使用這些新的庫。Python 3在設計上著重提升了語言的一致性和易用性&#xff0c;它引入了許多關鍵改進&#xff0c;此外&#xff0c;Python 3環境擁有豐…

基于springboot+html實現的衣物捐贈平臺

一、系統架構 前端&#xff1a;html | layui | jquery | css 后端&#xff1a;springboot | thymeleaf | mybatis 環境&#xff1a;jdk1.8 | mysql | maven 二、代碼及數據庫 三、功能介紹 01. 登錄頁 02. 注冊 03. web頁-首頁 04. web頁-捐贈衣服 05. web頁-論壇交流…

C# 中的 IReadOnlyDictionary 和 IReadOnlyList

C# 中的 IReadOnlyDictionary 和 IReadOnlyList 是接口&#xff0c;用于表示只讀的字典和只讀的列表。這些接口提供了對集合的只讀訪問權限&#xff0c;即不允許對集合進行修改操作&#xff0c;例如添加、刪除或修改元素。這種只讀特性對于需要保護數據完整性或只需要進行讀取操…

MYSQL--鎖機制*

一.對鎖機制的大概介紹: 1.大概的來說,MYSQL當中的鎖實際上就是合理的管理多個服務器對于同一個共享資源的使用,是計算機協調多個進程或者是線程并發訪問某一資源的機制(避免爭搶資源的現象發生) 2.在數據庫當中,數據是一種可以供許多的用戶進行共享使用的資源,如何保證數據并發…