Multiply String
来源:互联网 发布:台湾ptt评论知乎文章 编辑:程序博客网 时间:2024/05/21 15:00
题意就是给你两个字符串型的数字,给这两个数字做乘法。
如果直接转换成Integer做乘法就会溢出。
所以要一步一步来。
先给出代码:
public class Solution { public String multiply(String num1, String num2) { int m=num1.length(); int n=num2.length(); int[] pos=new int[m+n]; for(int i=m-1;i>=0;i--){ for(int j=n-1;j>=0;j--){ int multi=(num1.charAt(i)-'0')*(num2.charAt(j)-'0'); int p1=i+j; int p2=i+j+1; int sum=multi+pos[p2]; pos[p1]+=sum/10; pos[p2]=sum%10; } } StringBuilder ans = new StringBuilder(); for(int p:pos){ if(!(p==0 && ans.length()==0))//清除结果最前面的0 ans.append(p); } return ans.length()==0?"0":ans.toString(); }}
p2记录当前运算的最后一位,p1记录当前运算的第一位
每次运算都是两位数
sum=当前运算乘积+上一次运算的前一位(也就是这次运算最后一位)
这次运算的前一位=上次运算是否有同一index的值+sum/10
这次运算的后一位=sum%10
阅读全文
0 0
- Multiply String
- Multiply String
- Multiply String
- leetcode 82: Multiply String
- 15.6 Multiply String
- Multiply String-Leetcode
- [leetcode Q43] Multiply String
- Leetcode : Multiply String
- 43. Multiply Strings(string模拟大数乘法)
- Multiply
- Multiply
- String——add_binary(字符串模拟加法)和multiply-strings(字符串模拟乘法)
- Quaternion Multiply:
- Multiply Strings
- Multiply Strings
- Multiply Strings
- Multiply Strings
- Multiply Strings
- 有关ssh免密登录时碰到的问题记录
- 基础练习 特殊回文数
- Retrofit用法详解
- 安卓Android-X86强制竖屏 安卓(Android)x86屏幕旋转解决方法
- JAVA——网络编程(2):Java编写的TCP网络程序
- Multiply String
- 1027. Colors in Mars (20)
- PHP之文件处理
- SQL与NOSQL的区别
- C++ 中 \ 的含义
- JZOJ2137.2017.05.20【usaco2017_Mar Bronze & Silver】C组T5Bovine Genomics
- 使用原码, 反码和补码
- mooc_03_排序
- 双基回文数