Overflow in intermediate arithmetic
Wrong move: Temporary multiplications exceed integer bounds.
Usually fails on: Large inputs wrap around unexpectedly.
Fix: Use wider types, modular arithmetic, or rearranged operations.
Build confidence with an intuition-first walkthrough focused on math fundamentals.
Given an integer columnNumber, return its corresponding column title as it appears in an Excel sheet.
For example:
A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...
Example 1:
Input: columnNumber = 1 Output: "A"
Example 2:
Input: columnNumber = 28 Output: "AB"
Example 3:
Input: columnNumber = 701 Output: "ZY"
Constraints:
1 <= columnNumber <= 231 - 1Problem summary: Given an integer columnNumber, return its corresponding column title as it appears in an Excel sheet. For example: A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28
Start with the most direct exhaustive search. That gives a correctness anchor before optimizing.
Pattern signal: Math
1
28
701
excel-sheet-column-number)cells-in-a-range-on-an-excel-sheet)design-spreadsheet)Source-backed implementations are provided below for direct study and interview prep.
// Accepted solution for LeetCode #168: Excel Sheet Column Title
class Solution {
public String convertToTitle(int columnNumber) {
StringBuilder res = new StringBuilder();
while (columnNumber != 0) {
--columnNumber;
res.append((char) ('A' + columnNumber % 26));
columnNumber /= 26;
}
return res.reverse().toString();
}
}
// Accepted solution for LeetCode #168: Excel Sheet Column Title
func convertToTitle(columnNumber int) string {
res := []rune{}
for columnNumber != 0 {
columnNumber -= 1
res = append([]rune{rune(columnNumber%26 + int('A'))}, res...)
columnNumber /= 26
}
return string(res)
}
# Accepted solution for LeetCode #168: Excel Sheet Column Title
class Solution:
def convertToTitle(self, columnNumber: int) -> str:
res = []
while columnNumber:
columnNumber -= 1
res.append(chr(ord('A') + columnNumber % 26))
columnNumber //= 26
return ''.join(res[::-1])
// Accepted solution for LeetCode #168: Excel Sheet Column Title
impl Solution {
#[allow(dead_code)]
pub fn convert_to_title(column_number: i32) -> String {
let mut ret = String::from("");
let mut column_number = column_number;
while column_number > 0 {
if column_number <= 26 {
ret.push((('A' as u8) + (column_number as u8) - 1) as char);
break;
} else {
let mut left = column_number % 26;
left = if left == 0 { 26 } else { left };
ret.push((('A' as u8) + (left as u8) - 1) as char);
column_number = (column_number - 1) / 26;
}
}
ret.chars().rev().collect()
}
}
// Accepted solution for LeetCode #168: Excel Sheet Column Title
function convertToTitle(columnNumber: number): string {
let res: string[] = [];
while (columnNumber > 0) {
--columnNumber;
let num: number = columnNumber % 26;
res.unshift(String.fromCharCode(num + 65));
columnNumber = Math.floor(columnNumber / 26);
}
return res.join('');
}
Use this to step through a reusable interview workflow for this problem.
Simulate the process step by step — multiply n times, check each number up to n, or iterate through all possibilities. Each step is O(1), but doing it n times gives O(n). No extra space needed since we just track running state.
Math problems often have a closed-form or O(log n) solution hidden behind an O(n) simulation. Modular arithmetic, fast exponentiation (repeated squaring), GCD (Euclidean algorithm), and number theory properties can dramatically reduce complexity.
Review these before coding to avoid predictable interview regressions.
Wrong move: Temporary multiplications exceed integer bounds.
Usually fails on: Large inputs wrap around unexpectedly.
Fix: Use wider types, modular arithmetic, or rearranged operations.