給你乙個字串 s,它由數字(『0』 - 『9』)和 『#』 組成。我們希望按下述規則將 s 對映為一些小寫英文本元:
字元(『a』 - 『i』)分別用(『1』 - 『9』)表示。
字元(『j』 - 『z』)分別用(『10#』 - 『26#』)表示。
返回對映之後形成的新字串。
題目資料保證對映始終唯一。
要求將數字轉換成字母,因此聯想到使用ascii碼進行轉換,首先我們要了解ascii碼怎麼用:
比如我們的ascii碼 a 對應的是數值是 97 ,那麼在記憶體裡面,就是存放的是 97 的二進位制。當你把 97 當作資料時,那麼它就是 97;如果你把它當作字元,那麼計算機就會呼叫計算機圖形學的程式設計,將 a 的圖形繪製到螢幕上,舉個**例子:
#include
intmain()
控制台輸出:
題目中給出的a到i用1到9表示,j到z用』10#』 - '26#'表示,既然如此,那麼我就用這些混淆視聽的數字湊出ascii碼的數值,以此得到相應的字母。
附上所用到字母的ascii碼:
通過例項一可知,可以從判斷陣列s的第三個元素入手,若為『#』,則將其之前的兩位數作為乙個數字進行計算,並且指標每次往後移動兩位數字,繼續進行判斷;否則,每次移動一位數字,並且將這一位數作為乙個數字進行計算ascii碼值。
另外記錄一下,if(a&&b)與if(b&&a)的不同,執行順序從左向右,因此第一次執行時誤將if(i+2』#』)搞反了,先判斷了s[i+2]』#'導致i值超出範圍的報錯。
附上**:
char
*freqalphabets
(char
* s)
else
dict[dictsize++
]=num+
'a'-1;
}return dict;
}
1309 解碼字母到整數對映
給你乙個字串 s,它由數字 0 9 和 組成。我們希望按下述規則將 s 對映為一些小寫英文本元 字元 a i 分別用 1 9 表示。字元 j z 分別用 10 26 表示。返回對映之後形成的新字串。題目資料保證對映始終唯一。示例 1 輸入 s 10 11 12 輸出 jkab 解釋 j 10 k 1...
1309 解碼字母到整數對映
給你乙個字串 s,它由數字 0 9 和 組成。我們希望按下述規則將 s 對映為一些小寫英文本元 字元 a i 分別用 1 9 表示。字元 j z 分別用 10 26 表示。返回對映之後形成的新字串。題目資料保證對映始終唯一。示例 1 輸入 s 10 11 12 輸出 jkab 解釋 j 10 k 1...
字串 1309 解碼字母到整數對映
題目 給你乙個字串 s,它由數字 0 9 和 組成。我們希望按下述規則將 s 對映為一些小寫英文本元 字元 a i 分別用 1 9 表示。字元 j z 分別用 10 26 表示。返回對映之後形成的新字串。題目資料保證對映始終唯一。示例 1 輸入 s 10 11 12 輸出 jkab 解釋 j 10 ...