comments | difficulty | edit_url | tags | ||
---|---|---|---|---|---|
true |
Easy |
|
Given a string columnTitle
that represents the column title as appears in an Excel sheet, return its corresponding column number.
For example:
A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...
Example 1:
Input: columnTitle = "A" Output: 1
Example 2:
Input: columnTitle = "AB" Output: 28
Example 3:
Input: columnTitle = "ZY" Output: 701
Constraints:
1 <= columnTitle.length <= 7
columnTitle
consists only of uppercase English letters.columnTitle
is in the range["A", "FXSHRXW"]
.
The column name in Excel is a representation in base 26. For example, "AB" represents the column number
Therefore, we can iterate through the string columnTitle
, convert each character to its corresponding value, and then calculate the result.
The time complexity is columnTitle
. The space complexity is
class Solution:
def titleToNumber(self, columnTitle: str) -> int:
ans = 0
for c in map(ord, columnTitle):
ans = ans * 26 + c - ord("A") + 1
return ans
class Solution {
public int titleToNumber(String columnTitle) {
int ans = 0;
for (int i = 0; i < columnTitle.length(); ++i) {
ans = ans * 26 + (columnTitle.charAt(i) - 'A' + 1);
}
return ans;
}
}
class Solution {
public:
int titleToNumber(string columnTitle) {
int ans = 0;
for (char& c : columnTitle) {
ans = ans * 26 + (c - 'A' + 1);
}
return ans;
}
};
func titleToNumber(columnTitle string) (ans int) {
for _, c := range columnTitle {
ans = ans*26 + int(c-'A'+1)
}
return
}
function titleToNumber(columnTitle: string): number {
let ans: number = 0;
for (const c of columnTitle) {
ans = ans * 26 + (c.charCodeAt(0) - 'A'.charCodeAt(0) + 1);
}
return ans;
}
public class Solution {
public int TitleToNumber(string columnTitle) {
int ans = 0;
foreach (char c in columnTitle) {
ans = ans * 26 + c - 'A' + 1;
}
return ans;
}
}