国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Leetcode 171. Excel Sheet Column Number

2019-11-10 21:54:00
字體:
供稿:網(wǎng)友

Related to question Excel Sheet Column Title

Given a column title as appear in an Excel sheet, return its corresponding column number.

For example:

A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28

s思路: 1. 逆向題。例如:ABC=(C-‘A’+1)*1+(B-‘A’+1)*26+(A-‘A’+1)*26*26,從低位到高位,每次把字母轉(zhuǎn)換成數(shù)字后,乘以該數(shù)位的權(quán)重,權(quán)重在低位為1,從右往左每次權(quán)重也乘以26。這也是為什么從低位向高位遍歷的原因,低位的權(quán)重已知,高位的權(quán)重再沒訪問之前是不知道的。 2. 再次說明,搞清問題的邊界的具體位置,也就搞清了答案?;蛘咝蜗蟮恼f,答案在問題的背后,但是沒搞清楚問題的邊界,那么問題在頭腦里就是一團(tuán)漿糊,顯得沒有邊界,沒有邊界給人的感覺就是邊界無窮大,當(dāng)然從自己的角度看過去這個問題就大得遮住了答案,看不到一點答案的樣子;但是一旦學(xué)會了去定義問題的界限,發(fā)現(xiàn)問題方方面面的邊沿,問題就逐漸從“無窮大”縮減到這個問題實際的大小,那么答案就在他的背后,可以看得清清楚楚。當(dāng)然,值得強調(diào)的是,實際上問題本身沒有什么變化,不會變小,而是自己看問題的感受發(fā)生變化。比如,這道題低位的權(quán)重是1,這就是一個邊界,而且是已知的,而高位的邊界雖然可以獲得,但是并不是已知! 3. 上面說從低位開始遍歷,因為邊界清晰,所以好理解。但這并不妨礙從另一個角度來考慮問題,如果把這個轉(zhuǎn)換的過程建模成一下的方式:ABC={(A-‘A’+1)*26+(B-‘A’+1)}*26+(C-‘A’+1)??雌饋碛质菙?shù)學(xué)技巧,但是這里面展現(xiàn)的數(shù)學(xué)之美讓人動容。你看,我們通過提取公因數(shù),就可以從左邊遍歷至右邊。每次把當(dāng)前的結(jié)果乘以26,然后加上當(dāng)前位的數(shù),由于每次的中間結(jié)果都乘以26,所以,最高位就乘了n-1次26,因此這是正確的操作! 4. 再說一下兩者數(shù)學(xué)的不同:前者是乘數(shù)和被乘數(shù)相互獨立,權(quán)重每次自己相乘26即可,簡單干練,邏輯清楚,因為就是一個線性的思路;后者則是把整個中間結(jié)果乘以26,關(guān)鍵是這個結(jié)構(gòu)是一種自重復(fù)的結(jié)構(gòu),即:公式內(nèi)部的一部分長得和公式自己一樣,有點分形圖案的味道,天然用iterative實現(xiàn)。 5. 再分析,從左往右運算的方法:由于先把計算最重要,權(quán)重最高的位置,所以更穩(wěn)定;從右往左的方法,則穩(wěn)定性差。所謂穩(wěn)定性,就是如果計算從中間停止,所計算的結(jié)果和最后結(jié)果之間的差值大小。

//方法1:從低位向高位遍歷class Solution {public: int titleToNumber(string s) { // int res=0,w=1; for(int i=s.size()-1;i>=0;i--){ res+=(s[i]-'A'+1)*w; w*=26; } return res; }};//方法2:從高低位向低位遍歷class Solution {public: int titleToNumber(string s) { // int res=0; for(int i=0;i<s.size();i++){ res=res*26+(s[i]-'A'+1); } return res; }};
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 台山市| 巴楚县| 尼勒克县| 临桂县| 十堰市| 隆回县| 乐亭县| 揭东县| 砚山县| 安康市| 桑日县| 子洲县| 神农架林区| 盘锦市| 吉安县| 锡林浩特市| 长垣县| 马尔康县| 竹北市| 慈溪市| 宣城市| 慈利县| 浙江省| 盖州市| 和平县| 当阳市| 鄂托克旗| 双牌县| 文山县| 绥滨县| 运城市| 马尔康县| 莎车县| 牙克石市| 家居| 金乡县| 泸州市| 桂林市| 凤冈县| 徐汇区| 基隆市|