Leetcode No.67 Add Binary二进制求和(c++实现)
2021/7/31 9:06:43
本文主要是介绍Leetcode No.67 Add Binary二进制求和(c++实现),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. 题目
1.1 英文题目
Given two binary strings a and b, return their sum as a binary string.
1.2 中文题目
给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。
1.3输入输出
输入 | 输出 |
---|---|
a = "11", b = "1" | "100" |
a = "1010", b = "1011" | "10101" |
1.4 约束条件
- 1 <= a.length, b.length <= 104
- a and b consist only of '0' or '1' characters.
- Each string does not contain leading zeros except for the zero itself.
2. 分析
2.1 一般算法
class Solution { public: int lengthOfLastWord(string s) { int sLen = s.size(); int start = 0;//最后一个单词的最后一个字母位置 int end = 0;//最后一个单词前的空格位置(注意:不是最后一个单词的第一个字母位置) for (int i = sLen - 1; i >= 0; i--)//逆序遍历 { if (start == 0 && s[i] != ' ')//第一个非空格处,记为start start = i; else if (start != 0 && s[i] == ' ')//已经有start(也就是找到最后一个单词)的前提下,找到第二个空格,记为end,且退出循环 { end = i; break; } if (i == 0 && s[i] != ' ')//若一直遍历到0处才找到非空格元素,则将end-1 end--; } return start - end; } };
2.2 大神算法
参考:https://leetcode.com/problems/add-binary/discuss/24475/Short-code-by-c%2B%2B
class Solution { public: string addBinary(string a, string b) { string resultStr = ""; int carry = 0, aIndex = a.size() - 1, bIndex = b.size() - 1;//初始化余数和a,b索引值 while (aIndex >= 0 || bIndex >= 0 || carry == 1)//余数==1是针对最高位可能进位的情况 { carry += aIndex >= 0 ? a[aIndex--] - '0' : 0; carry += bIndex >= 0 ? b[bIndex--] - '0' : 0; resultStr = char(carry % 2 + '0') + resultStr; carry /= 2; } return resultStr; } };
这篇关于Leetcode No.67 Add Binary二进制求和(c++实现)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26终极指南:Scrum中如何设置需求优先级
- 2024-06-26AI大模型企业应用实战(25)-为Langchain Agent添加记忆功能
- 2024-06-26小白家庭 nas 搭建方案-icode9专业技术文章分享
- 2024-06-23AI大模型企业应用实战(14)-langchain的Embedding
- 2024-06-23AI大模型企业应用实战(15)-langchain核心组件
- 2024-06-23AI大模型企业应用实战(16)-langchain核心组件
- 2024-06-23AI 大模型企业应用实战(06)-初识LangChain
- 2024-06-19EntBot.ai: AI Website Chatbot for Product Guides and Development Doc
- 2024-06-17zero-shot-learning-definition-examples-comparison
- 2024-06-06Package Easy(基于 NSIS 的打包exe安装包工具)使用方法-icode9专业技术文章分享