劍指offer----輸入用字母表示的列號編碼,核心內容:二十六進位制變十進位制
阿新 • • 發佈:2018-12-12
題目:
用A表示第一列,用B表示第二列。。。。用Z表示第26列,用AA表示第27列。。。請寫出一個函式,輸入用字母表示的列號編碼,輸出它是第幾列。
思路:
此問題最精彩之處,核心---二十六進位制變十進位制
function calColumn(){ // var calStr = document.getElementById("preArr").value.toUpperCase(); var calStr = 'AB'.toUpperCase()//將輸入的內容都變成大寫 var result = 0;for(var i = calStr.length; i > 0; i--) { var ch = calStr.charCodeAt(i-1)-64; if( i == calStr.length ){ result += ch }else{ //答疑:參考16進位制 BFF=12*16^2+15*16+15 result += Math.pow(26, calStr.length-i) ;//result的結果就是列號 } } document.getElementById("showArr").value=result }
此頁面下載後,直接放在瀏覽器演示,即可成功
git原始碼頁面展示內容:https://github.com/Kristen-D/Algorithms/blob/master/algorithm/binaryOfNum/letterColumn.html