列表

详情


2194. Excel 表中某个范围内的单元格

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

给你一个格式为 "<col1><row1>:<col2><row2>" 的字符串 s ,其中 <col1> 表示 c1 列,<row1> 表示 r1 行,<col2> 表示 c2 列,<row2> 表示 r2 行,并满足 r1 <= r2c1 <= c2

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

 

示例 1:

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

示例 2:

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

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: vector<string> cellsInRange(string s) { } };

rust 解法, 执行用时: 0 ms, 内存消耗: 2 MB, 提交时间: 2023-09-12 20:00:25

impl Solution {
    pub fn cells_in_range(s: String) -> Vec<String> {
        let mut ans = Vec::new();
        let s = s.as_bytes();

        for i in s[0]..=s[3] {
            for j in s[1]..=s[4] {
                ans.push(format!("{}{}", i as char, j as char));
            }
        }

        ans
    }
}

golang 解法, 执行用时: 0 ms, 内存消耗: 2.8 MB, 提交时间: 2023-09-12 19:59:33

func cellsInRange(s string) []string {
	ans := make([]string, 0, (s[3]-s[0]+1)*(s[4]-s[1]+1))
	for i := s[0]; i <= s[3]; i++ {
		for j := s[1]; j <= s[4]; j++ {
			ans = append(ans, string(i)+string(j))
		}
	}
	return ans
}

java 解法, 执行用时: 1 ms, 内存消耗: 42.8 MB, 提交时间: 2023-09-12 19:59:02

class Solution {
    public List<String> cellsInRange(String s) {
            List<String> ans = new ArrayList<>();
            char[] arr = new char[2];
            for (char i = s.charAt(0); i <= s.charAt(3); i++) {
                arr[0] = i;
                for (char j = s.charAt(1); j <= s.charAt(4); j++) {
                    arr[1] = j;
                    ans.add(String.valueOf(arr));
                }
            }
            return ans;
    }
}

cpp 解法, 执行用时: 4 ms, 内存消耗: 7.6 MB, 提交时间: 2023-09-12 19:58:30

class Solution {
public:
    vector<string> cellsInRange(string s) {
        vector<string> res;
        for (char row = s[0]; row <= s[3]; ++row) {
            for (char col = s[1]; col <= s[4]; ++col) {
                string cell(1, row);
                cell.push_back(col);
                res.push_back(cell);
            }
        }
        return res;
    }
};

php 解法, 执行用时: 12 ms, 内存消耗: 19 MB, 提交时间: 2023-09-12 19:57:57

class Solution {

    /**
     * @param String $s
     * @return String[]
     */
    function cellsInRange($s) {
        $ans = [];
        for ($i = ord($s[0]); $i <= ord($s[3]); $i++ ) {
            for ( $j = intval($s[1]); $j <= intval($s[4]); $j++ ) {
                $ans[] = chr($i) . strval($j);
            }
        }
        return $ans;
    }
}

python3 解法, 执行用时: 40 ms, 内存消耗: 14.9 MB, 提交时间: 2022-05-25 16:14:29

class Solution:
    def cellsInRange(self, s: str) -> List[str]:
        ans = []
        for i in range(ord(s[0]), ord(s[3])+1):
            for j in range(int(s[1]), int(s[4])+1):
                ans.append(chr(i) + str(j))
        return ans

上一题