2194. Excel 表中某个范围内的单元格
Excel 表中的一个单元格 (r, c)
会以字符串 "<col><row>"
的形式进行表示,其中:
<col>
即单元格的列号 c
。用英文字母表中的 字母 标识。
1
列用 'A'
表示,第 2
列用 'B'
表示,第 3
列用 'C'
表示,以此类推。<row>
即单元格的行号 r
。第 r
行就用 整数 r
标识。给你一个格式为 "<col1><row1>:<col2><row2>"
的字符串 s
,其中 <col1>
表示 c1
列,<row1>
表示 r1
行,<col2>
表示 c2
列,<row2>
表示 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
由大写英文字母、数字、和 ':'
组成原站题解
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