for loop to iterate through words

后端 未结 2 1868
我在风中等你
我在风中等你 2021-01-28 20:05

My previous post caused a lot of confusion and it flooded with answers that is not relevant to my questions. (My fault for not clarifying things) I flagged that post and this is

相关标签:
2条回答
  • 2021-01-28 20:40

    String slicing will likely make the code much simpler. Here's something to get you started:

    def overlap(left, right):
        for i in reversed(range(len(left))):
                if left[-i:] == right[:i]:
                    break
        return left + right[i:]
    
    for pair in [
        ('keyboard', 'ardjimmy'),
        ('jimmy', 'myolita'),
        ('myolita', 'jimmy'),
    ]:
        left, right = pair
        print pair, '-->', overlap(left, right), overlap(right, left)
    
    0 讨论(0)
  • 2021-01-28 20:44

    I think your rule goes something like this: If the first string has a suffix that's also a prefix of the second string, chop it off. Then merge the two strings.

    If you search backward, starting with the whole string and working down instead of starting with a single character and working up, you don't need to keep track of anything at all, other than the current suffix you're testing. In other words:

    def frags(strings):
        left, right = strings
        for i in reversed(range(len(left))):
            if right.startswith(left[-i:]):
                return left[:-i] + right
        return left+right
    
    0 讨论(0)
提交回复
热议问题