当前位置: 首页 > news >正文

如何搭建一个公司网站站长工具国产2023

如何搭建一个公司网站,站长工具国产2023,室内设计网站都有哪些公司,中山网站建设策划二进制求和 给你两个二进制字符串 a 和 b #xff0c;以二进制字符串的形式返回它们的和。 https://leetcode.cn/problems/add-binary/description/ 代码一#xff0c;尝试使用笨办法#xff0c;会造成溢出 class Solution { public:string addBinary(string a, string …二进制求和 给你两个二进制字符串 a 和 b 以二进制字符串的形式返回它们的和。 https://leetcode.cn/problems/add-binary/description/ 代码一尝试使用笨办法会造成溢出 class Solution { public:string addBinary(string a, string b) {int len1 a.length();int len2 b.length();long long A0;long long B0;for(int ilen1-1;i0;i--){A (a[i] - 0) *pow(2,len1-1-i);}for(int jlen2-1;j0;j--){B (b[j] - 0)*pow(2,len2-1-j);}long long CAB;if(C0){string c0;return c;}string c;while(C!0){int m C%2; c(m0);CC/2;}string reversed_c(c.rbegin(), c.rend());return reversed_c;} };注意对于字符串的反转可以使用 string reversed_c(c.rbegin(), c.rend());按照这个思路先对于ab字符串反转然后按位相加最后考虑进位问题这个思路还是有点问题 看到一个大佬的题解 class Solution { public:string addBinary(string a, string b) {if (b.size() a.size()) {return addBinary(b, a); // 这里先确保第一个数不短于第二个数}int m a.size(), n b.size(), carry 0;for (int i 0; i m; i) {if (n - 1 - i 0) {if (carry 0) break;} else {carry b[n - 1 - i] - 0;}carry a[m - 1 - i] - 0;a[m - 1 - i] 0 (carry % 2);carry 1;}return carry ? 1 a : a;} };函数分析 首先进行长度比较如果b的长度大于a的长度就交换两个参数的位置确保第一个参数这里是a不短于第二个参数。这样做是为了在后续的循环中简化处理因为在处理时是以较长的字符串为基准进行遍历。然后确定两个字符串的长度m和n以及进位carry初始值为 0。接着进入循环循环从长字符串a的最后一个字符开始向前遍历。 如果当前索引对应的位置超出了短字符串b的范围即n - 1 - i 0此时如果进位carry为 0则说明没有更多的进位需要处理可以直接跳出循环。如果当前索引对应的位置在短字符串b的范围内则将短字符串b对应位置的字符值转换为数字通过减去字符’0’累加到进位carry中。同时将长字符串a对应位置的字符值也转换为数字累加到进位carry中。然后更新长字符串a对应位置的字符为当前进位和的结果对 2 取余后再加上字符’0’即得到该位置的新二进制值。最后更新进位carry为其当前值右移一位相当于除以 2以准备下一位的计算。 循环结束后如果进位carry不为 0则在结果字符串a的前面添加一个字符’1’表示最高位有进位否则直接返回a作为最终的结果字符串。 下面是一种常规思路上面的思路看不懂可以看下面这个 class Solution { public:string addBinary(string a, string b) {int al a.size();int bl b.size();while(al bl) //让两个字符串等长若不等长在短的字符串前补零否则之后的操作会超出索引{a 0 a; al;}while(al bl){b 0 b; bl;}for(int j a.size() - 1; j 0; -- j) //从后到前遍历所有的位数同位相加{a[j] a[j] - 0 b[j];if(a[j] 2) //若大于等于字符‘2’需要进一{a[j] (a[j] - 0) % 2 0;a[j-1] a[j-1] 1;}}a[0] a[0] - 0 b[0]; //将ab的第0位相加if(a[0] 2) //若大于等于2需要进一{a[0] (a[0] - 0) % 2 0;a 1 a;}return a;} };
http://www.ho-use.cn/article/10815267.html

相关文章:

  • 深圳网站优化方案wordpress自动分享插件
  • 广西网站建开发一个app收费
  • 九江网站设计公司seo搜索排名优化公司
  • 天津做网站建设公司南昌品牌网站建设
  • 建设网站设计的公司网站建设的税收编码
  • php做网站项目的流程什么软件可以看到街景
  • 下沙做网站青岛做商城网站
  • 江西网站开发方案wordpress的图标怎么添加
  • wordpress网站的搭建在线设计房屋装修
  • 白酒公司网站的建设建立新中国的构想及其实践
  • 怎么做电力设计公司网站在银行网站如何做理财风险评测
  • 1g内存的服务器可以建设几个网站烟台做网站联系电话
  • asp access网站建设源代码广西建设网网上办事大厅个人版
  • 比较大的做网站的公司有哪些百度多长时间收录网站
  • 国外做储物的网站企业建站系统官网
  • 大连网站专业制作莱芜网页制作公司
  • 全平台响应式网站建设平面ui设计网站
  • 动感网站模板生活家装饰
  • 电子商务网站建设实训报告范文肇庆建设网站
  • 菏泽做网站建设的公司哪个地方网站建设的公司多
  • 兰州网站推广建设网站建设唯特和凡科哪个好
  • 腾讯空间个人认证 企业认证 网站认证哪种功能用途最齐全??花的网页设计模板素材
  • 青岛优化网站关键词做网站公司郑州汉狮
  • 有什么网站可以做简历编写网站用什么语言
  • 网站建设与管理清考作业能打开各种网站的浏览器app
  • 祺越网站建设免费的行情网站app代码
  • 写着网站建设图片拼多多 wordpress
  • 做网站IP设计什么网站简单
  • 织梦dedecms大气微电影网站模板徐州h5建站模板
  • 徐州微网站开发公司网站内容管理流程图