文章目錄
- 168. Excel表列名稱
- 進制轉換
- 官方題解
- 171. Excel 表列序號
- 進制轉換
- 483. 最小好進制
168. Excel表列名稱
進制轉換
題目鏈接
十進制轉二十六進制數,不同的是常規的二十六進制數是滿二十六進位,這個是二十六作為最后一個數字,多以用一個小標志特判了一下
class Solution {
public:
string convertToTitle(int columnNumber) {
unordered_map<int,char>mp;
int k=0;
string ch;
for(int i=0;i<26;i++) mp[i+1]=i+'A';
if(columnNumber%26==0) k=1;
mp[0]='Z';
while(columnNumber)
{
ch=mp[columnNumber%26]+ch;
if(columnNumber==26) break;
columnNumber/=26;
if(columnNumber) columnNumber-=k;
}
return ch;
}
};
官方題解
一樣的思路,不過人家的代碼要比我的簡潔許多
官方題解鏈接
class Solution {
public:
string convertToTitle(int columnNumber) {
string ans;
while (columnNumber > 0) {
--columnNumber;
ans += columnNumber % 26 + 'A';
columnNumber /= 26;
}
reverse(ans.begin(), ans.end());
return ans;
}
};
171. Excel 表列序號
進制轉換
上一題的逆程序
class Solution {
public:
int titleToNumber(string columnTitle) {
unordered_map<char,int>mp;
for(int i=0;i<26;i++) mp[i+'A']=i+1;
int res=0;
for(int i=0;i<columnTitle.size();i++)
{
res=res*26+mp[columnTitle[i]];
}
return res;
}
};
483. 最小好進制
數學永遠是硬傷wuwuwu~看了幾篇題解總算是懂了,我也不獻丑放我的代碼了放一個我個人覺得寫得特別好的題解吧
@zerotrac(思路賊清晰)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/354546.html
標籤:其他
上一篇:閱讀 redis 原始碼,學習快取淘汰演算法 W-TinyLFU
下一篇:軟體測驗【個人簡歷】展示模板
