返回介绍

solution / 2100-2199 / 2194.Cells in a Range on an Excel Sheet / README

发布于 2024-06-17 01:03:08 字数 3514 浏览 0 评论 0 收藏 0

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

English Version

题目描述

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 <= 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"]
解释:
上图显示了列表中应该出现的单元格。 
红色箭头指示单元格的出现顺序。

 

提示:

  • 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) []string {
  var 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 ans
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文