当前位置:网站首页>LeetCode_67(二进制求和)
LeetCode_67(二进制求和)
2022-07-05 13:51:00 【***】
真正的勇士,敢于直面爆破算法
题目描述:
给你两个二进制字符串,返回它们的和(用二进制表示)。
输入为 非空 字符串且只包含数字 1 和 0。
示例 1:
输入: a = “11”, b = “1”
输出: “100”
示例 2:
输入: a = “1010”, b = “1011”
输出: “10101”
提示:
每个字符串仅由字符 ‘0’ 或 ‘1’ 组成。
1 <= a.length, b.length <= 10^4
字符串如果不是 “0” ,就都不含前导零。
class Solution {
public String addBinary(String a, String b) {
String res="";
StringBuilder sb=new StringBuilder();
StringBuilder sbb=new StringBuilder();
String s;
if(a.length()<b.length()){
s=a;
a=b;
b=s;
}
else s=b;
int len=a.length()-b.length();
if(len<0)len=-len;
for(int k=0;k<len;k++){
sbb.append("0");
}
s=sbb.toString();
b=s+b;
List<Character> list=new ArrayList<>();
int[] flag=new int[a.length()];
char cur='0';
int i=a.length()-1,j=b.length()-1;
while(i>=0&&j>=0){
if(i==a.length()-1){
//判断最后一位运算
if(a.charAt(i)==b.charAt(j)){
//如果相等
list.add('0'); //直接加0
if(a.charAt(i)=='1')flag[i]=1; //如果为一,则表示要进位
else flag[i]=0; //否则不进位
i--;j--;
//进入下一位计算
}else if(a.charAt(i)!=b.charAt(j)){
//如果不想等
list.add('1'); //为一
flag[i]=0; //不进位
i--;j--;
}
}
else{
if(a.charAt(i)!=b.charAt(j)){
//如果不相等
cur='1'; //为一
flag[i]=0; //不进位
}
else{
//相等
cur='0'; //为零
if(a.charAt(i)=='0'){
//若两数为零
flag[i]=0; //则不进位
}else {
//否则就为一
flag[i]=1; //进位
}
}
if(flag[i+1]==1){
//如果前一位进位,则改变
if(cur=='0')cur='1';
else{
cur='0';
flag[i]=1;
}
}
list.add(cur);
i--;
j--;
}
}
if(flag[0]==1)list.add('1');
for(int k=list.size()-1;k>=0 ;k--){
sb.append(list.get(k));
}
res=sb.toString();
return res;
}
}
边栏推荐
- Zibll theme external chain redirection go page beautification tutorial
- Binder communication process and servicemanager creation process
- Usage, installation and use of TortoiseSVN
- Pancake Bulldog robot V2 (code optimized)
- Jetpack Compose入门到精通
- Internal JSON-RPC error. {"code":-32000, "message": "execution reverted"} solve the error
- Idea set method annotation and class annotation
- Wechat app payment callback processing method PHP logging method, notes. 2020/5/26
- In addition to the root directory, other routes of laravel + xampp are 404 solutions
- RK3566添加LED
猜你喜欢
Huawei push service content, read notes
Xampp configuring multiple items
STM32 reverse entry
龙芯派2代烧写PMON和重装系统
Set up a website with a sense of ceremony, and post it to the public 2/2 through the intranet
Idea remote debugging agent
PHP basic syntax
Redis6 master-slave replication and clustering
Summit review | baowanda - an integrated data security protection system driven by compliance and security
zabbix 监控
随机推荐
Zhubo Huangyu: these spot gold investment skills are not really bad
几款分布式数据库的对比
深拷贝真难
那些考研后才知道的事
When using Tencent cloud for the first time, you can only use webshell connection instead of SSH connection.
Require, require in PHP_ once、include、include_ Detailed explanation of the efficiency of repeated introduction of once class library
Data Lake (VII): Iceberg concept and review what is a data Lake
4年工作经验,多线程间的5种通信方式都说不出来,你敢信?
鏈錶(簡單)
Binder communication process and servicemanager creation process
[South China University of technology] information sharing of postgraduate entrance examination and re examination
How to divide a large 'tar' archive file into multiple files of a specific size
2022司钻(钻井)考试题库及模拟考试
什么叫做信息安全?包含哪些内容?与网络安全有什么区别?
About the problem and solution of 403 error in wampserver
Operational research 68 | the latest impact factors in 2022 were officially released. Changes in journals in the field of rapid care
The development of speech recognition app with uni app is simple and fast.
Usage, installation and use of TortoiseSVN
Simple PHP paging implementation
Those things I didn't know until I took the postgraduate entrance examination