两数相乘
- 两数相乘 推荐度:
- 相关推荐
两数相乘
给出两个链表形式表示的数字,写一个函数得到这两个链表相乘乘积。
样例
样例 1:
输入:9->4->6->null,8->4->null
输出:79464
解释:946*84=79464
样例 2:
输入:3->2->1->null,1->2->null
输出:3852
解释:321*12=3852
/*** Definition of singly-linked-list:* class ListNode {* public:* int val;* ListNode *next;* ListNode(int val) {* this->val = val;* this->next = NULL;* }* }*/class Solution {
public:/*** @param l1: the first list* @param l2: the second list* @return: the product list of l1 and l2*/long long multiplyLists(ListNode * l1, ListNode * l2) {// write your code here string num1 = "";string num2 = ""; while(l1){char ch = l1->val + 48;num1 += ch;l1 = l1->next;}while(l2){char ch = l2->val + 48;num2 += ch;l2 = l2->next;}return stoll(multiply(num1, num2));}string multiply(string num1, string num2) {int l1 = num1.length();int l2 = num2.length();vector<int> ans(l1 + l2 + 1, 0);for (int i = 0; i < l1; i++) {for (int j = 0; j < l2; j++) {ans[i + j] += (num1[l1 - 1 - i] - '0') * (num2[l2 - 1 - j] - '0');}}for(int i = 0; i < l1 + l2; i++) {ans[i + 1] += ans[i] / 10;ans[i] %= 10;}int i = l1 + l2;while (ans[i] == 0 && i >= 1) {i--;}string str;while (i >= 0) {str += (char)(ans[i--] + '0');}return str;}
};
最新文章
- 参考文档一:性能测试
- CNN中卷积和池化计算公式
- 信雅达面试
- 服务器iis短文件名漏洞,IIS短文件名漏洞分析及一个实例
- html怎么多行超出省略号,css+js 如何实现多行文字超出显示省略号(需要同时兼容ie chrome等浏览器)...
- SOA系列之 什么是SOA?
- 初看SOA:SOA是什么?
- 谈谈SOA
- 推荐一个博客工具——Boke宝贝
- 九、路由原理与路由协议
- VSS2005使用方法
- ADFS 概念与基本开发介绍
- TCPIP和TCP,UDP
- lssvr matlab,lssvm(最小二乘支持向量机)matlab
- html5 调用手机摄像头详解
- javascript弹出对话框
- MBR与磁盘管理
- 装机、做系统必备:秒懂MBR和GPT分区表
- 2022年执法资格刑侦执法考试多选题专项训练题及答案
- C语言程序设计之通讯录