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

网站咨询聊天怎么做qq网站安全认证怎么做

网站咨询聊天怎么做,qq网站安全认证怎么做,房产网手机版网站建设目标,怎么在公司网站上安装百度商桥目录 ⼆进制求和(easy) 题目解析 讲解算法原理 编写代码 字符串相乘(medium) 题目解析 讲解算法原理 编写代码 ⼆进制求和(easy) 题目解析 1.题目链接:. - 力扣(LeetCode&a…

目录

⼆进制求和(easy)

题目解析

讲解算法原理

编写代码

字符串相乘(medium)

题目解析

讲解算法原理

编写代码


⼆进制求和(easy)

题目解析

1.题目链接:. - 力扣(LeetCode)

2.题目描述

给你两个⼆进制字符串 a 和 b ,以⼆进制字符串的形式返回它们的和。
⽰例 1:
输⼊:a = "11", b = "1"
输出:"100"
⽰例 2:
输⼊:a = "1010", b = "1011"
输出:"10101"

讲解算法原理

解法(模拟⼗进制的⼤数相加的过程):
算法思路:

模拟⼗进制中我们列竖式计算两个数之和的过程。但是这⾥是⼆进制的求和,我们不是逢⼗进⼀,⽽是逢⼆进⼀。

编写代码

c++算法代码:

class Solution
{
public:string addBinary(string a, string b) {string ret;int cur1 = a.size() - 1, cur2 = b.size() - 1, t = 0;while(cur1 >= 0 || cur2 >= 0 || t){if(cur1 >= 0) t += a[cur1--] - '0';if(cur2 >= 0) t += b[cur2--] - '0';ret += t % 2 + '0';t /= 2;}reverse(ret.begin(), ret.end());return ret;}
};

java算法代码:

class Solution
{public String addBinary(String a, String b) {StringBuffer ret = new StringBuffer();int cur1 = a.length() - 1, cur2 = b.length() - 1, 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' + (char)(t % 2)));t /= 2;}ret.reverse();return ret.toString();}
}

字符串相乘(medium)

题目解析

1.题目链接:. - 力扣(LeetCode)

2.题目描述

给定两个以字符串形式表⽰的⾮负整数num1和num2,返回num1和num2的乘积,它们的乘积也表⽰为字符串形式。
注意:不能使⽤任何内置的BigInteger库或直接将输⼊转换为整数。⽰例1:
输⼊:num1="2",num2="3"
输出:"6"
⽰例2:
输⼊:num1="123",num2="456"
输出:"56088"

讲解算法原理

解法(⽆进位相乘然后相加,最后处理进位):
算法思路:

整体思路就是模拟我们⼩学列竖式计算两个数相乘的过程。但是为了我们书写代码的⽅便性,我们选择⼀种优化版本的,就是在计算两数相乘的时候,先不考虑进位,等到所有结果计算完毕之后,再去考虑进位。如下图:

 

编写代码

C++算法代码:

class Solution
{
public:string multiply(string n1, string n2) {// 解法:⽆进位相乘后相加,然后处理进位int m = n1.size(), n = n2.size();reverse(n1.begin(), n1.end());reverse(n2.begin(), n2.end());vector<int> tmp(m + n - 1);// 1. ⽆进位相乘后相加for(int i = 0; i < m; i++)for(int j = 0; j < n; j++)tmp[i + j] += (n1[i] - '0') * (n2[j] - '0');// 2. 处理进位int cur = 0, t = 0;string ret;while(cur < m + n - 1 || t){if(cur < m + n - 1) t += tmp[cur++];ret += t % 10 + '0';t /= 10;}// 3. 处理前导零while(ret.size() > 1 && ret.back() == '0') ret.pop_back();reverse(ret.begin(), ret.end());return ret;}
};

java算法代码:

class Solution
{public String multiply(String num1, String num2) {int m = num1.length(), n = num2.length();char[] n1 = new StringBuffer(num1).reverse().toString().toCharArray();char[] n2 = new StringBuffer(num2).reverse().toString().toCharArray();int[] tmp = new int[m + n - 1];// 1. ⽆进位相乘后相加for(int i = 0; i < m; i++)for(int j = 0; j < n; j++)tmp[i + j] += (n1[i] - '0') * (n2[j] - '0');// 2. 处理进位int cur = 0, t = 0;StringBuffer ret = new StringBuffer();while(cur < m + n - 1 || t != 0){if(cur < m + n - 1) t += tmp[cur++];ret.append((char)(t % 10 + '0'));t /= 10;}// 3. 处理进位while(ret.length() > 1 && ret.charAt(ret.length() - 1) == '0') ret.deleteCharAt((ret.length() - 1));return ret.reverse().toString();}
}

http://www.yayakq.cn/news/566778/

相关文章:

  • 门户类网站是什么意思用户体验设计原则
  • 网站建设成功案例宣传软件开发公司简介
  • ace网站建设怎么建设一个企业网站
  • 建设部网站安全考核证书查询专门做ppt的网站
  • php带数据库的网站做养生网站需要证件吗
  • 出格做网站网站目录结构图
  • 网页制作与网站建设初学者必看教程拼多多代运营收费标准
  • 网站方案策划怎么写怎样制作专业简历
  • 榆中建设局网站如何自己做网站赚钱
  • 郓城菏泽网站建设四川网站设计
  • 设计素材网站哪个好用室内设计培训班价格
  • 怎么建设个人主页网站网站 栏目
  • 手机网站建设 苏州上虞市住房和城乡建设局网站
  • 安徽省住房和城乡建设厅官方网站网站开发需要什么步骤
  • 网站建设 中十大网站有哪些
  • 济源网站优化电话卡分销平台
  • 瑞安企业做网站wordpress id不连续
  • 韩国美容网站模板学做快餐的视频网站
  • 百度百科搜索入口厦门seo优
  • 什么网站做二维码比较好商场商城网站建设方案
  • 安徽建站优化哪里有网站建设的说辞
  • 进网站后台显示空白手机精品网站建设
  • 网站域名怎么转网站建设肆金手指排名4
  • 前端自己做博客网站浦口区城乡建设集团网站
  • 网站会员体系宜昌怎样优化网站建设
  • 搭建一个网站需要多少钱?wordpress外网访问错误
  • 应用frontpage制作教学网站响应式网站软件
  • 电子商务网站的开发方式百度手机助手下载2022官方正版
  • 做网站麻烦么深圳宝安西乡网站建设
  • 长春一般建一个网站需要多少钱网站修改报价