leetcode43

1 class Solution:
2     def multiply(self, num1: str, num2: str) -> str:
3         return str(int(num1)*int(num2))

python就是方便啊,这才是好的程序代码应有的亚子,也是程序员应有的亚子。(呵呵)

但是似乎这种简便的方式,不太符合题目要求。

下面给出一个java的参考代码:https://leetcode.com/problems/multiply-strings/discuss/17605/Easiest-JAVA-Solution-with-Graph-Explanation

 1 public String multiply(String num1, String num2) {
 2     int m = num1.length(), n = num2.length();
 3     int[] pos = new int[m + n];
 4    
 5     for(int i = m - 1; i >= 0; i--) {
 6         for(int j = n - 1; j >= 0; j--) {
 7             int mul = (num1.charAt(i) - '0') * (num2.charAt(j) - '0'); 
 8             int p1 = i + j, p2 = i + j + 1;
 9             int sum = mul + pos[p2];
10 
11             pos[p1] += sum / 10;
12             pos[p2] = (sum) % 10;
13         }
14     }  
15     
16     StringBuilder sb = new StringBuilder();
17     for(int p : pos) if(!(sb.length() == 0 && p == 0)) sb.append(p);
18     return sb.length() == 0 ? "0" : sb.toString();
19 }

也许将来AI高度发展了,大多数的复杂工作,都由机器来完成,程序员只需写一行简单的代码就可以了。

那时候的程序员看我们现在写的代码,也许就像我们看历史书中的“纸带打孔”的代码一样吧。

左图:纸带打孔编程。右图:本题目参考代码的思路分析配图。

根据教科书中的介绍,现在的冯氏体系的计算机由"运算器","控制器","存储器","输入","输出"这五大部分组成,

也许将来的计算机会有个什么"智能器"之类的部件,我们现在需要人工处理的工作,都可以由这个智能器完成。

也许那时,编写程序就像打字聊天一样,而程序员也不再是一个职业了。

原文地址:https://www.cnblogs.com/asenyang/p/11105719.html