From 49c880746c941d8ce9883f751a68900be04e30e1 Mon Sep 17 00:00:00 2001 From: Michael Xu Date: Thu, 24 Aug 2023 21:55:34 -0400 Subject: [PATCH] feat: add rust solution to lc problem: No.0168 --- .../0168.Excel Sheet Column Title/README.md | 26 +++++++++++++++++++ .../README_EN.md | 26 +++++++++++++++++++ .../0168.Excel Sheet Column Title/Solution.rs | 21 +++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 solution/0100-0199/0168.Excel Sheet Column Title/Solution.rs diff --git a/solution/0100-0199/0168.Excel Sheet Column Title/README.md b/solution/0100-0199/0168.Excel Sheet Column Title/README.md index 031a3ca79cea5..606d8e36aef9c 100644 --- a/solution/0100-0199/0168.Excel Sheet Column Title/README.md +++ b/solution/0100-0199/0168.Excel Sheet Column Title/README.md @@ -98,6 +98,32 @@ class Solution { } ``` +### **Rust** + +```rust +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() + } +} +``` + ### **TypeScript** ```ts diff --git a/solution/0100-0199/0168.Excel Sheet Column Title/README_EN.md b/solution/0100-0199/0168.Excel Sheet Column Title/README_EN.md index 691abf3581b96..7723450ea3d0a 100644 --- a/solution/0100-0199/0168.Excel Sheet Column Title/README_EN.md +++ b/solution/0100-0199/0168.Excel Sheet Column Title/README_EN.md @@ -81,6 +81,32 @@ class Solution { } ``` +### **Rust** + +```rust +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() + } +} +``` + ### **TypeScript** ```ts diff --git a/solution/0100-0199/0168.Excel Sheet Column Title/Solution.rs b/solution/0100-0199/0168.Excel Sheet Column Title/Solution.rs new file mode 100644 index 0000000000000..260f574331c05 --- /dev/null +++ b/solution/0100-0199/0168.Excel Sheet Column Title/Solution.rs @@ -0,0 +1,21 @@ +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() + } +} \ No newline at end of file