假定一種編碼的編碼範圍是a ~ y的25個字母,從1位到4位的編碼,如果我們把該編碼按字典序排序,形成乙個陣列如下: a, aa, aaa, aaaa, aaab, aaac, … …, b, ba, baa, baaa, baab, baac … …, yyyw, yyyx, yyyy 其中a的index為0,aa的index為1,aaa的index為2,以此類推。 編寫乙個函式,輸入是任意乙個編碼,輸出這個編碼對應的index.
輸入乙個待編碼的字串,字串長度小於等於100.
輸出這個編碼的index示例1
複製
baca
複製
16331思路:這道題並沒有什麼太簡便的方法,就是一位一位找到比當前字串小的字串個數。
需要注意的就是當右側沒有字元時這個特殊情況,我先後寫了兩版**:
第一版:
#include#includeusing
namespace
std;
intmain()
else
if(s == 2
)else
if(s == 3
)else
return0;
}
第二版:
#include#include#include
#include
using
namespace
std;
intmain()
}cout
}
把計數情況想清楚了也就簡單了。
2017校招真題 幸運數
時間限制 1秒 空間限制 32768k 題目描述 小明同學學習了不同的進製之後,拿起了一些數字做起了遊戲。小明同學知道,在日常生活中我們最常用的是十進位制數,而在計算機中,二進位制數也很常用。現在對於乙個數字x,小明同學定義出了兩個函式f x 和g x f x 表示把x這個數用十進位制寫出後各個數字...
2017校招真題 酒店價格
題目描述 酒店房間的 錄入是通過時間段來錄入的,比如10月1日至10月7日800元,10月8日至10月20日500元,請實現以下函式int merge int daterangeprices 輸入是某個酒店多個日期段的 每個日期段 終止日期大於等於起始日期 和對應的 使用長度為3的陣列來表示,比如 ...
nowcoder 2017校招真題 保留最大的數
給定乙個十進位制的正整數number,選擇從裡面去掉一部分數字,希望保留下來的數字組成的正整數最大。輸入為兩行內容,第一行是正整數number,1 length number 50000。第二行是希望去掉的數字數量cnt 1 cnt length number 輸出保留下來的結果。輸入325 1 輸...