Determine prefix from a set of (similar) strings

前端 未结 9 2102
我在风中等你
我在风中等你 2020-11-27 14:25

I have a set of strings, e.g.

my_prefix_what_ever
my_prefix_what_so_ever
my_prefix_doesnt_matter

I simply want to find the longest common p

9条回答
  •  無奈伤痛
    2020-11-27 14:57

    Here is another way of doing this using OrderedDict with minimal code.

    import collections
    import itertools
    
    def commonprefix(instrings):
        """ Common prefix of a list of input strings using OrderedDict """
    
        d = collections.OrderedDict()
    
        for instring in instrings:
            for idx,char in enumerate(instring):
                # Make sure index is added into key
                d[(char, idx)] = d.get((char,idx), 0) + 1
    
        # Return prefix of keys while value == length(instrings)
        return ''.join([k[0] for k in itertools.takewhile(lambda x: d[x] == len(instrings), d)])
    

提交回复
热议问题