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高度发展了,大多数的复杂工作,都由机器来完成,程序员只需写一行简单的代码就可以了。
那时候的程序员看我们现在写的代码,也许就像我们看历史书中的“纸带打孔”的代码一样吧。
左图:纸带打孔编程。右图:本题目参考代码的思路分析配图。
根据教科书中的介绍,现在的冯氏体系的计算机由"运算器","控制器","存储器","输入","输出"这五大部分组成,
也许将来的计算机会有个什么"智能器"之类的部件,我们现在需要人工处理的工作,都可以由这个智能器完成。
也许那时,编写程序就像打字聊天一样,而程序员也不再是一个职业了。