python字典序問題例項

2022-10-06 05:24:11 字數 1924 閱讀 3569

問題描述:

將www.cppcns.com字母從左向右的次序與字母表中的次序相同,且每個字元最大出現一次..例如:a,b,ab,bc,xyz等都是程式設計客棧公升序的字串.現對字母表a產生的所有長度不超過6的公升序字串按照字典充排列並編碼如下:12

..26

2728

...ab..

zab

ac..

對乙個公升序字串,迅速計算出它在上述字典中的編碼。

實現**如下:

import string

all_letter = string.ascii_lowercase

def gen_dict():

result = {}

list_nwww.cppcns.comum_one = [ a_letter for a_letter in all_letter ]

list_num_two = [ i + j for i in all_letter for j in all_letter[all_letter.find(i)+1:]]

list_num_three = [ i + j + k for i in all_letter

for j in all_letter[all_letter.find(i)+1:]

enakbooq for k in all_letter[all_letter.find(j)+1:]]

list_num_four = [ i + j + k + l for i in all_letter

for j in all_letter[all_letter.find(i)+1:]

for kenakbooq in all_letter[all_letter.find(j)+1:]

for l in all_letter[all_letter.find(k)+1:]]

list_num_five = [ i + j + k + l + m for i in all_letter

for j in all_letter[all_letter.find(i)+1:]

for k in all_letter[all_letter.find(j)+1:]

for l in all_letter[all_letter.find(k)+1:]

for m in all_letter[all_letter.find(l)+1:]]

list_num_six = [ i + j + k + l + m + n for i in all_letter

for j in all_letter[all_letter.find(i)+1:]

for k in all_letter[all_letter.find(j)+1:]

for l in all_letter[all_letter.find(k)+1:]

for m in all_letter[all_letter.find(l)+1:]

for n in all_letter[all_letter.find(m)+1:]

]for key,value in enumerate(list_num_one + list_num_two + list_num_three + list_num_four + list_num_five + list_num_six):

result.setdefault(key+1,value)

return result

my_dict = gen_dict()

value_to_get = 'abcdef'

for key,value in my_dict.iteritems():

if value == value_to_get:

print key

結果:83682  

即abcdef在字典中的編碼。

本文標題: python字典序問題例項

本文位址:

字典序問題

碰到過很多求關於字典序的問題,一直都是用的c 的stl庫中的函式水過的,今天終於有機會,算是對字串字典序問題的乙個總結吧。如果已知乙個字串 abc 為了更直觀,我們把建立如下對映 a 1 b 2 c 3 我們把這三個字母的所有排列都寫出來,有 序號字串 對映數字 1abc 1232 acb132 3...

字典序問題

字典序問題,給定乙個長度不超過6的小寫字母公升序字串 字串中的字元相對順序和字母表中的順序一致 迅速計算出在字典中的編碼,字典如 1 2 3 26 27 28 a b c z ab ac 總體思路為先計算出給定字串前所有的個數,然後再加一 include include 計算從i開始的長度為k的所有...

字典序問題

在資料加密和資料壓縮中需要對特殊的字串進行編碼。給定的字母表由26個小寫字母組成。該字母表產生的公升序字串是指字串中字母從左到右出現的次序與字母在字母表中出現的次序相同,且每個字元最多出現1次。例如,a,b,ab,bc,xyz等都是公升序字串。現在對字母表中產生的所有長度不超過6的公升序字串按照字典...