Solve excel-sheet-column-title.
This commit is contained in:
parent
50e994b2dc
commit
2c193f140d
|
@ -0,0 +1,18 @@
|
|||
pub fn convert_to_title(column: i32) -> String {
|
||||
let radix = 26;
|
||||
|
||||
let mut column = column as u32;
|
||||
let mut result = vec![];
|
||||
|
||||
while column != 0 {
|
||||
// Subtract 1 so the number 0 would equal the value 1.
|
||||
let value = (column - 1) % radix;
|
||||
column = (column - 1) / radix;
|
||||
|
||||
// Add 65 so the modulo'd value will be in the 65 through 90 character range
|
||||
// (upppercase letters).
|
||||
result.push(char::from_u32(value + 65).unwrap());
|
||||
}
|
||||
|
||||
result.into_iter().rev().collect::<String>()
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
pub mod add_binary;
|
||||
pub mod excel_sheet_column_number;
|
||||
pub mod excel_sheet_column_title;
|
||||
pub mod implement_strstr;
|
||||
pub mod length_of_last_word;
|
||||
pub mod longest_common_prefix;
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
use leetcode::excel_sheet_column_title::convert_to_title;
|
||||
|
||||
use test_case::test_case;
|
||||
|
||||
#[test_case(1, "A"; "minimum")]
|
||||
#[test_case(i32::MAX, "FXSHRXW"; "maximum")]
|
||||
#[test_case(28, "AB"; "double")]
|
||||
#[test_case(1377, "AZY"; "triple")]
|
||||
fn test_excel_sheet_column_title(input: i32, expected: &str) {
|
||||
assert_eq!(convert_to_title(input), expected);
|
||||
}
|
Loading…
Reference in New Issue