Solution 1 - Bijective Base 26
Convert to bijective base 26 (A..Z) by decrementing before each division.
Convert to bijective base 26 (A..Z) by decrementing before each division.
""" 0168.1 - Excel Sheet Column Title - Solution 1 - Bijective Base 26 """
#####################################################################################
# Imports
#####################################################################################
#####################################################################################
# Classes
#####################################################################################
class Solution:
"""Solution Class"""
def convertToTitle(self, n: int) -> str:
"""Excel Sheet Column Title Function"""
out = ""
while n:
n -= 1
out = chr(65 + n % 26) + out
n //= 26
return out
#####################################################################################
# Functions
#####################################################################################
def testcase():
"""Test Function"""
assert Solution().convertToTitle(1) == "A"
assert Solution().convertToTitle(28) == "AB"
assert Solution().convertToTitle(701) == "ZY"
print("tests passed")
#####################################################################################
# Main
#####################################################################################
if __name__ == "__main__":
testcase()/** 0168.1 - Excel Sheet Column Title - Solution 1 - Bijective Base 26 */
/////////////////////////////////////////////////////////////////////////////////////
// Classes
/////////////////////////////////////////////////////////////////////////////////////
class Solution {
convertToTitle(n) {
let out = "";
while (n > 0) {
n -= 1;
out = String.fromCharCode(65 + (n % 26)) + out;
n = Math.floor(n / 26);
}
return out;
}
}
console.log(new Solution().convertToTitle(701)); // ZY/** 0168.1 - Excel Sheet Column Title - Solution 1 - Bijective Base 26 */
/////////////////////////////////////////////////////////////////////////////////////
// Classes
/////////////////////////////////////////////////////////////////////////////////////
class Solution {
convertToTitle(n: number): string {
let out: string = "";
while (n > 0) {
n -= 1;
out = String.fromCharCode(65 + (n % 26)) + out;
n = Math.floor(n / 26);
}
return out;
}
}
console.log(new Solution().convertToTitle(701)); // ZY// 0168.1 - Excel Sheet Column Title - Solution 1 - Bijective Base 26
package main
/////////////////////////////////////////////////////////////////////////////////////
// Imports
/////////////////////////////////////////////////////////////////////////////////////
import "fmt"
/////////////////////////////////////////////////////////////////////////////////////
// Functions
/////////////////////////////////////////////////////////////////////////////////////
func convertToTitle(n int) string {
out := ""
for n > 0 {
n--
out = string(rune('A'+n%26)) + out
n /= 26
}
return out
}
func main() {
fmt.Println(convertToTitle(701)) // ZY
}// 0168.1 - Excel Sheet Column Title - Solution 1 - Bijective Base 26
struct Solution;
impl Solution {
pub fn convert_to_title(mut n: i32) -> String {
let mut out: Vec<char> = Vec::new();
while n > 0 {
n -= 1;
out.push((b'A' + (n % 26) as u8) as char);
n /= 26;
}
out.iter().rev().collect()
}
}
fn main() {
assert_eq!(Solution::convert_to_title(701), "ZY");
}