Leetcode -- Multiply Strings
2015-10-30 09:24
477 查看
Given two numbers represented as strings, return multiplication of the numbers as a string.
Note: The numbers can be arbitrarily large and are non-negative.
Note: The numbers can be arbitrarily large and are non-negative.
class Solution { public: string add(string s,string t) { int n1=s.size(),n2=t.size(); if(n1<n2) return add(t,s); string res; char cur; t=string(n1-n2,'0')+t; int c=0; for(int i=n1-1;i>=0;--i) { int tmp=c+s[i]-'0'+t[i]-'0'; c=tmp/10; tmp%=10; cur=tmp+'0'; res=cur+res; } if(c>0) { cur=c+'0'; res=cur+res; } return res; } string multi(string s,char t) { int n=s.size(),c=0,v=t-'0'; string res; char ch; for(int i=n-1;i>=0;--i) { int val = (s[i]-'0')*v+c; c=val/10; val%=10; ch = val+'0'; res=ch+res; } if(c>0) { ch=c+'0'; res=ch+res; } return res; } string multiply(string num1, string num2) { int n1=num1.size(),n2=num2.size(); string res=multi(num1,num2[n2-1]); for(int i=n2-2;i>=0;--i) { string cur=multi(num1,num2[i]); cur+=string(n2-1-i,'0'); res=add(cur,res); } while(res.size()>1&&res[0]=='0') res=res.substr(1); return res; } };
相关文章推荐
- 内置函数
- jquery操作select(取值,设置选中)
- 开发者 发展 6 执行力
- 第9周、项目3(2)—稀疏矩阵的三元组表示的实现及应用
- 国科别墅
- [2005]:第几天
- 对于org.apache.commons.dbcp.BasicDataSource的配置认知
- python操作mysql数据库
- ArrayList、string、string[]之间的转换
- 第九周项目2 - 对称矩阵压缩存储的实现与应用(2)
- 第8周项目4 字符串加密
- Ubuntu 下安装minicom 及配置过程
- 基于用户认证来实现不同域的邮件转发
- 对称矩阵压缩存储的实现与应用(1)
- 优化哈希策略
- symfony
- 在页面和请求中分别使用XML Publisher生成PDF报表且自动上传至附件服务器
- .NET NLog 详解(二)
- NSLocale
- NSOrderedSet