騰訊筆試題

2021-08-14 18:45:40 字數 907 閱讀 5718

1、編碼題

假定一種編碼的編碼範圍是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.

解題邏輯:畫出編碼邏輯圖如下圖:

計算出相鄰2個同位數編碼之間的距離,儲存於base陣列中:

base[3] = 1, 即aaaa與aaab之間相隔;base[2] = base[3]*25+1,即aaa與aab之間相隔;base[1] = 25*base[2] + 1,即aa與ab之間相隔;base[0] = 25*base[1]+1,即a與b之間相隔。

例如:baca:

1)找出b的位置,即與a之間的距離 d1 = ('b' - 'a') * base[0] +1;

2)找出ba的位置,即與ba之間的距離 d2 = ('a' - 'a') * base[1] +1;

3)找出bac的位置,即與baa之間的距離 d3 = ('c' - 'a') * base[2] +1;

4)找出baca的位置,即與baca之間的距離 d4 = ('b' - 'a') * base[3] +1;

5)算出index = d1 + d2 + d3 + d4 - 1; //減1是因為編碼從零開始計數

關鍵**段:

騰訊筆試題

一.單選題 每題4 分,15題,共60分 1.考慮函式原型void hello int a,int b 7,char pszc 下面的函式呼叫鐘,屬於不合法呼叫的是 a hello 5 b.hello 5,8 c.hello 6,d.hello 0,0,2.下面有關過載函式的說法中正確的是 a.過載...

騰訊筆試題

1 請定義乙個巨集,比較兩個數a b的大小,不能使用大於 小於 if語句 2 如何輸出原始檔的標題和目前執行行的行數 3 兩個數相乘,小數點後位數沒有限制,請寫乙個高精度演算法 4 寫乙個病毒 5 有a b c d 四個人,要在夜裡過一座橋。他們通過這座橋分別需要耗時1 2 5 10分鐘,只有一支手...

騰訊筆試題

const的含義及實現機制,比如 const int i,是怎麼做到i只可讀的?const用來說明所定義的變數是唯讀的。這些在編譯期間完成,編譯器可能使用常數直接替換掉對此變數的引用。初探編譯器static const之實現原理 到商店裡買200的商品返還100優惠券 可以在本商店代替現金 請問實際...