2017-04-05 57 views
0

這是一個難題,但如果你有這個詞:'apple'。按字母順序,其信件將上市['a','e','l','p','p']正則表達式來查找你知道字母但不是字母的字母順序的單詞嗎?

因此,如果您分配1'a'2'e',等等,你知道這個詞的字母遵循此模式:14532

所以我想要考慮如何製作一個正則表達式來搜索字母順序的單詞。這甚至可能是一個python腳本,我只需要爲此做一次約1百萬字的單詞。

編輯更加清晰:

使用上述系統,並給出一個數字,即「14532」從遵循字母圖案給定的列表中返回的所有單詞。

+2

你現在在嘗試達到和它是怎麼去? –

+3

使用正則表達式有什麼特別的理由嗎? – asongtoruin

+0

爲什麼你認爲正則表達式在這裏很有用?你有可能有效的單詞列表,或者你可以使用標準單詞列表,例如在拼字遊戲中合法的單詞列表? –

回答

0

這是一個可愛的小腦子傳情。

def char_order(word): 
    ascii_values = [ord(letter) for letter in word] 
    order_mapping = dict(zip(sorted(set(ascii_values)), xrange(1,len(set(ascii_values))+1))) 
    return [order_mapping[value] for value in ascii_values] 
  1. 字符轉換的字的ASCII值
  2. 單詞中的每個獨特的ASCII值映射到指數
  3. 回報單詞中的每個字符的索引。

char_order( '蘋果')

[1,4,4,3,2]

+0

除了在OP的系統中,'蘋果'映射到'14532' –

+1

和15432將同樣可以接受。這是錯誤的功能邏輯。 – Quitty

+0

這就是我要找的。我可以遍歷我的列表併爲每個單詞生成這個列表,並檢查它是我要找的。我正在考慮以相反的方向從數字列表開始,然後以某種方式找到匹配它的單詞。 – chilypepper

相關問題