สมมติว่าเรามีค่าจำนวนเต็มบวก เราต้องหาชื่อคอลัมน์ที่เกี่ยวข้องตามที่ปรากฏในสเปรดชีต ดังนั้น [1 :A], [2 :B], [26 :Z], [27 :AA], [28 :AB] เป็นต้น
ดังนั้นหากอินพุตเท่ากับ 29 เอาต์พุตจะเป็น AC
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
ในขณะที่ n ไม่ใช่ศูนย์ ให้ทำ -
-
n :=n − 1
-
res :=res + n mod 26 + ASCII ของ 'A'
-
n :=n / 26
-
-
ย้อนกลับความละเอียดอาร์เรย์
-
ผลตอบแทน
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
#include <bits/stdc++.h> using namespace std; class Solution { public: string convertToTitle(int n) { string res; while(n){ res += (−−n)%26 + 'A'; n /= 26; } reverse(res.begin(), res.end()); return res; } }; main(){ Solution ob; cout << (ob.convertToTitle(30)); }
อินพุต
30
ผลลัพธ์
AD