comments | difficulty | edit_url | rating | source | tags | |
---|---|---|---|---|---|---|
true |
简单 |
1253 |
第 283 场周赛 Q1 |
|
Excel 表中的一个单元格 (r, c)
会以字符串 "<col><row>"
的形式进行表示,其中:
<col>
即单元格的列号c
。用英文字母表中的 字母 标识。<ul> <li>例如,第 <code>1</code> 列用 <code>'A'</code> 表示,第 <code>2</code> 列用 <code>'B'</code> 表示,第 <code>3</code> 列用 <code>'C'</code> 表示,以此类推。</li> </ul> </li> <li><code><row></code> 即单元格的行号 <code>r</code> 。第 <code>r</code> 行就用 <strong>整数</strong> <code>r</code> 标识。</li>
给你一个格式为 "<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
由大写英文字母、数字、和':'
组成
我们直接遍历范围内的所有单元格,将其添加到答案数组中。
时间复杂度
class Solution:
def cellsInRange(self, s: str) -> List[str]:
return [
chr(i) + str(j)
for i in range(ord(s[0]), ord(s[-2]) + 1)
for j in range(int(s[1]), int(s[-1]) + 1)
]
class Solution {
public List<String> cellsInRange(String s) {
List<String> ans = new ArrayList<>();
for (char i = s.charAt(0); i <= s.charAt(3); ++i) {
for (char j = s.charAt(1); j <= s.charAt(4); ++j) {
ans.add(i + "" + j);
}
}
return ans;
}
}
class Solution {
public:
vector<string> cellsInRange(string s) {
vector<string> ans;
for (char i = s[0]; i <= s[3]; ++i) {
for (char j = s[1]; j <= s[4]; ++j) {
ans.push_back({i, j});
}
}
return ans;
}
};
func cellsInRange(s string) (ans []string) {
for i := s[0]; i <= s[3]; i++ {
for j := s[1]; j <= s[4]; j++ {
ans = append(ans, string(i)+string(j))
}
}
return
}
function cellsInRange(s: string): string[] {
const ans: string[] = [];
for (let i = s.charCodeAt(0); i <= s.charCodeAt(3); ++i) {
for (let j = s.charCodeAt(1); j <= s.charCodeAt(4); ++j) {
ans.push(String.fromCharCode(i) + String.fromCharCode(j));
}
}
return ans;
}