乙個字串編碼問題的程式解決

2021-07-03 05:16:45 字數 1161 閱讀 9049

原題:

/* 描述

為了最大程度地節約儲存空間,經常需要把資訊進行編碼。一種很有效的編碼方法是用數字來表示一串字元。假設這些字串都是由不重複的英文小寫字母組成的,且每個字串中的英文本母都是從小到大排列的。

這個編碼系統按照如下的方式工作:

字串是按照長度從小到大的順序排列的

長度相同的字串,是按照字典需排列的

則根據這個編碼系統,所有的字串從 a 開始可以編碼如下:

a - 1 b - 2 … z - 26 ab - 27 … az - 51 bc - 52 … vwxyz - 83681 …

那麼,請程式設計計算出乙個字串在這個編碼系統下編碼後的值是多少。

輸入 輸入的第一行為 n,表示有 n 組資料。後面的 n 行每行包含乙個不超過 10 個字母的字串。

輸出 輸出字串所對應的編碼,如果該字串不能被編碼,則輸出 0。

測試用例 1 以文字方式顯示

1 bf

以文字方式顯示

55解決**:

#include

#include

#include

#include

using namespace std;

long long t[10][26]= ; //查表,將最簡形式的編碼事先準備好

/*行號: 012

34...24

25 列號:0 a b c d e ... y z

1 ab bc cd de ef ... yz zz

2 abc bcd cde efg ghi ... xyz zzz

34...

9 abcdefghij ..... qrstuvwxyz ...zzzzz

*/void init_table()

for(i=1;i<10;i++)

for(j=26-i;j<26;j++)

}return;

}long long lookup(char *snum)

ret += t[0][*p-'a'];

return ret;

}int main(void)

乙個字串壓縮程式

題目描述 通過鍵盤輸入一串小寫字母 a z 組成的字串。請編寫乙個字串壓縮程式,將字串中連續出席的重 復字母進行壓縮,並輸出壓縮後的字串。壓縮規則 1.僅壓縮連續重複出現的字元。比如字串 abcbc 由於無連續重複字元,壓縮後的字串還是 abcbc 2.壓縮欄位的格式為 字元重複的次數 字元 例如 ...

乙個字串演算法問題

已知一組數字 21,25,11,32,12,35,55,77,66 要求按以下規則進行排序 第乙個數最大,第二個數最小,第三個數是剩下中的最大的,第四個數是剩下中的最小的,依此類推,請設計乙個字元介面的程式解決之 c codes as below class program console.read...

乙個字串是否包含另乙個字串的問題

string s1 2,3,4,5,11,string s2 1,2個字串s1和s2,我用什麼方法判斷s2在不在s1裡呢,而不是把s1裡的 11,當成s2 using system using system.text.regularexpressions class test 在這個程式中,s1 和...