騰訊筆試題 五筆編碼

2021-08-08 02:20:02 字數 965 閱讀 3123

l = 'abcdefghijklmnopqrstuvwxy'

l = list(l)

## 第一位之前的個數函式

deffirst

(l,char):

k = l.index(char)

return k*((26*25+1)*25+1)

## 第一位確定好後,第二位之前的個數函式

defsecond

(l,char):

k = l.index(char)

return k*(26*25+1)+1

## 第一第二位確定好後,第三位之前的個數函式

defthird

(l,char):

k = l.index(char)

return k*26+1

## 第一,二,三位確定好後,第四位之前的個數函式

deffour

(l,char):

k = l.index(char)

return k+1

s = input()

s = list(s)

## 由於index從0開始,無需加1

if len(s)==1:

index = first(l,s[0])

if len(s)==2:

index = first(l,s[0])+second(l,s[1])

if len(s)==3:

index = first(l,s[0])+second(l,s[1])+third(l,s[2])

if len(s)==4:

index = first(l,s[0])+second(l,s[1])+third(l,s[2])+four(l,s[3])

print(index)

baca

16331

演算法練習 五筆編碼

五筆的編碼範圍是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為...

五筆的編碼和解碼

q 五筆的編碼範圍是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的inde...

五筆的編碼和解碼

q 五筆的編碼範圍是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的inde...