正则表达式找到你知道字母的字母顺序而不是字母的单词?

时间:2017-04-05 13:43:03

标签: python regex

这是一个难以理解的问题,但如果你有这个词:'apple'。按字母顺序,其字母将列为['a','e','l','p','p']

因此,如果您将1分配给'a'2分配给'e'等,您就知道这些字母的字母符合以下格式:{{1} }。

所以我试图想出如何制作一个正则表达式来搜索字母遵循该顺序的单词。这甚至可能是一个python脚本,我只需要做一次~1m的单词。

编辑更清晰:

使用上述系统,并给出一个数字,即' 14532'返回给定列表中按字母顺序排列的所有单词。

1 个答案:

答案 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. 返回单词中每个字符的索引。
  4.   

    char_order( '苹果')

         
        

    [1,4,4,3,2]