题目解析
本题逻辑不难,但是实现起来比较麻烦。
我的解题思路如下:
首先,要搞清楚Excel表格坐标和matrix输入矩阵的索引的对应关系,比如上面用例中,输入的matrix矩阵为:[ ["1", "=A1+C1", "3"] ]
其中“1”值,对应矩阵 martix[0][0],而对应的Excel表格坐标是A1,其中A代表列号,1代表行号。
因此,我们容易得到Excel表格坐标和matrix输入矩阵的索引的对应关系:
- 列对应关系:String('A').charCodeAt() - 65 = 0 (PS:'A'的ASCII码值为65)
- 行对应关系:1 - 1 = 0
解下来,我们需要弄清楚,如何将Excel坐标,如A1,B2,C3中的列号和行号解析出来,因为只有解析出来,才能方便处理,之后才能对应到matrix的索引。
这里我们使用了正则表达式的捕获组,正则为:/^(A-Z)(\d+)$/
接下来,我们就可以实现根据Excel坐标,获取到matrix矩阵元素的逻辑了,我们定义一个方法getCell,入参Excel坐标,然后通过上面的正则解析出来对应列号、行号,然后再根据Excel