LeetCode(43) Multiply Strings
2015-07-23 11:30
330 查看
参考这篇文章,讲的很不错。
[code]class Solution { public: string multiply(string num1, string num2) { reverse(num1.begin(), num1.end()); reverse(num2.begin(), num2.end()); vector<int> arr(num1.size() + num2.size(), 0); for(int i = 0; i < num2.size(); i++) { for(int j = 0; j < num1.size(); j++) { arr[i + j] += (num2[i] - '0') * (num1[j] - '0'); } } int outflow = 0; for(int i = 0; i < num1.size() + num2.size(); i++) { arr[i] += outflow; outflow = arr[i] / 10; arr[i] = arr[i] % 10; } int pos; for(pos = num1.size() + num2.size() - 1; pos >= 0; pos--) { if(arr[pos] != 0) { pos++; break; } } if(-1 == pos) return "0"; vector<int>::iterator iter = arr.begin(); arr.erase(iter + pos, arr.end()); reverse(arr.begin(), arr.end()); string result; for(int i = 0; i < arr.size(); i++) { result += to_string(arr[i]); } return result; } };
相关文章推荐
- 为label或者textView添加placeHolder
- HTML5引擎Construct2技术剖析(三)
- 【Android应用保护技术探索之路系列】之二:对抗反编译
- 【Android应用保护技术探索之路系列】之一:Android应用保护技术开篇
- 为label或者textView添加placeHolder
- IOS常用宏定义
- 神、上帝以及老天爷
- Java调用动态库方法说明
- Windows Server 2012 R2 文件服务器安装与配置01 之目录说明
- 中文化和国际化问题权威解析之一:字符编码发展历程
- AVAudioPlayer 如何在页面呈现之后按需初始化
- iOS多视图控制器跳转方法
- winform propertygrid用法
- android实现点击按钮实现home键的功能
- (转)说说进程与线程的区别与联系
- Counting Triangles(hd1396)
- 给 UILabel 中的文字增加 line-through / Strikethrough (删除线)样式
- Objective-C学习笔记(十)——循环语句for和do-while的使用
- pandas 数据归一化以及行删除例程
- UILabel字体颜色和大小