A cell (r, c)
of an excel sheet is represented as a string "<col><row>"
where:
<col>
denotes the column numberc
of the cell. It is represented by alphabetical letters.<ul> <li>For example, the <code>1<sup>st</sup></code> column is denoted by <code>'A'</code>, the <code>2<sup>nd</sup></code> by <code>'B'</code>, the <code>3<sup>rd</sup></code> by <code>'C'</code>, and so on.</li> </ul> </li> <li><code><row></code> is the row number <code>r</code> of the cell. The <code>r<sup>th</sup></code> row is represented by the <strong>integer</strong> <code>r</code>.</li>
You are given a string s
in the format "<col1><row1>:<col2><row2>"
, where <col1>
represents the column c1
, <row1>
represents the row r1
, <col2>
represents the column c2
, and <row2>
represents the row r2
, such that r1 <= r2
and c1 <= c2
.
Return the list of cells (x, y)
such that r1 <= x <= r2
and c1 <= y <= c2
. The cells should be represented as strings in the format mentioned above and be sorted in non-decreasing order first by columns and then by rows.
Example 1:
Input: s = "K1:L2" Output: ["K1","K2","L1","L2"] Explanation: The above diagram shows the cells which should be present in the list. The red arrows denote the order in which the cells should be presented.
Example 2:
Input: s = "A1:F1" Output: ["A1","B1","C1","D1","E1","F1"] Explanation: The above diagram shows the cells which should be present in the list. The red arrow denotes the order in which the cells should be presented.
Constraints:
s.length == 5
'A' <= s[0] <= s[3] <= 'Z'
'1' <= s[1] <= s[4] <= '9'
s
consists of uppercase English letters, digits and':'
.
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
}