Excel 表中的一个单元格 (r, c) 会以字符串 ““ 的形式进行表示,其中:

    即单元格的列号 c 。用英文字母表中的 字母 标识。
    例如,第 1 列用 ‘A’ 表示,第 2 列用 ‘B’ 表示,第 3 列用 ‘C’ 表示,以此类推。
    即单元格的行号 r 。第 r 行就用 整数 r 标识。
    给你一个格式为 “:“ 的字符串 s ,其中 表示 c1 列, 表示 r1 行, 表示 c2 列, 表示 r2 行,并满足 r1 <= r2 且 c1 <= c2 。

    找出所有满足 r1 <= x <= r2 且 c1 <= y <= c2 的单元格,并以列表形式返回。单元格应该按前面描述的格式用 字符串 表示,并以 非递减 顺序排列(先按列排,再按行排)。

    示例 1:

    输入:s = “K1:L2”
    输出:[“K1”,”K2”,”L1”,”L2”]
    解释:
    上图显示了列表中应该出现的单元格。
    红色箭头指示单元格的出现顺序。
    示例 2:

    输入:s = “A1:F1”
    输出:[“A1”,”B1”,”C1”,”D1”,”E1”,”F1”]
    解释:
    上图显示了列表中应该出现的单元格。
    红色箭头指示单元格的出现顺序。

    提示:

    s.length == 5
    ‘A’ <= s[0] <= s[3] <= ‘Z’
    ‘1’ <= s[1] <= s[4] <= ‘9’
    s 由大写英文字母、数字、和 ‘:’ 组成


    1. class Solution {
    2. public List<String> cellsInRange(String s) {
    3. int c1 = s.charAt(0) - 'A', c2 = s.charAt(3) - 'A';
    4. int a = s.charAt(1) - '0', b = s.charAt(4) - '0';
    5. List<String> res = new ArrayList<>();
    6. for (int i = c1; i <= c2; ++i)
    7. for (int j = a; j <= b; ++j)
    8. res.add((char)(i + 'A') + "" + j);
    9. return res;
    10. }
    11. }