本文章是⭐️小Y学算法⭐️的内容,该专栏还有多篇优质内容在等待你观看,现在点击右上角点击这个————🚀订阅专栏🚀 就可以免费观看多篇相关内容的文章啦!
- 📢前言
- 🌲原题样例
- 🌻C#方法:遍历
- 🌻Java 方法一:遍历
- 🌻Java 方法二:暴力法
- 💬总结
- 🌲 每天打卡一道算法题,既是一个学习过程,又是一个分享的过程😜
- 🌲 提示:本专栏解题 编程语言一律使用 C# 和 Java 两种进行解题
- 🌲 要保持一个每天都在学习的状态,让我们一起努力成为算法大神吧🧐!
- 🌲 今天是力扣算法题持续打卡第20天🎈!
给你两个二进制字符串,返回它们的和(用二进制表示)。
输入为 非空 字符串且只包含数字 1 和 0。
示例 1:
输入: a = "11", b = "1"
输出: "100"
示例 2:
输入: a = "1010", b = "1011"
输出: "10101"
提示:
- 每个字符串仅由字符 ‘0’ 或 ‘1’ 组成。
- 1 1){ carry = 1; }else{ carry=0; }
res= (count%2).ToString()+res;
}
if(carry==1){ res= "1"+res; }
return res;
}
}
执行结果
🌻Java 方法一:遍历通过 执行用时:76 ms,在所有 C# 提交中击败了93.10%的用户 内存消耗:26 MB,在所有 C# 提交中击败了25.51%的用户
思路解析
整体思路是将两个字符串较短的用 0 补齐,使得两个字符串长度一致,然后
从末尾进行遍历
计算,得到最终结果。本题解中大致思路与上述一致,但由于字符串操作原因,不确定最后的结果是否会多出一位
进位
所以会有
2 种处理方式
:第一种
,在进行计算时直接拼接字符串,会得到一个反向字符,需要最后再进行翻转第二种
,按照位置给结果字符赋值,最后如果有进位,则在前方进行字符串拼接添加进位
代码:
class Solution { public String addBinary(String a, String b) { StringBuilder ans = new StringBuilder(); int ca = 0; //是否进一位 for (int i = a.length() - 1, j = b.length() - 1; i >= 0 || j >= 0; i--, j--) { int sum = ca; sum += (i >= 0 ? a.charAt(i) - '0' : 0); // 获取字符串a对应的某一位的值 当i= 0 ? b.charAt(j) - '0' : 0);// 获取字符串a对应的某一位的值 当i
关注打赏
热门博文
- 通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
- 花一天时间做一个高质量飞机大战游戏,过万字Unity完整教程!漂亮学妹看了直呼666!
- 自动化测试哪家强?Apipost用实力来告诉你。
- Unity实战篇 | 游戏中控制 地图无限自动化生成 的方法,进一步优化项目
- Unity实战篇 |制作一个跟随鼠标转向的 简易箭头指示标,包括 UI指向 和 3D指向标
- 【100个 Unity实用技能】| Unity读取本地文件(Json,txt等)的三种方法示例
- 【100个 Unity实用技能】| Unity中常用的几种路径 分析,不同平台路径总结
- 实测:游戏情景中,远控软件实力如何?一篇告诉你ToDesk的强大之处
- 【100个 Unity实用技能】| C#中List.Find 方法详解 查找符合要求的第一个元素并返回
- 一顿饭的时间,教你怎样快速使用 动态代理ip 做一个获取Steam 热销商品 的方法