您的位置:首页 > 其它

Leetcode: Generalized Abbreviation

2015-12-28 00:16 344 查看

Question

Write a function to generate the generalized abbreviations of a word.

Example:

Given word = “word”, return the following list (order does not matter):

[“word”, “1ord”, “w1rd”, “wo1d”, “wor1”, “2rd”, “w2d”, “wo2”, “1o1d”, “1or1”, “w1r1”, “1o2”, “2r1”, “3d”, “w3”, “4”]

Hide Company Tags Google

Hide Tags Backtracking Bit Manipulation

Hide Similar Problems (M) Subsets (E) Unique Word Abbreviation

My Solution

Accept

[code]class Solution(object):
    def generateAbbreviations(self, word):
        """
        :type word: str
        :rtype: List[str]
        """

        res = []
        self.helper( 0, word, "", res, 0)
        return res

    def helper(self, index, word, temp_res, res, count):

        if index==len(word):
            if count!=0:
                temp_res = temp_res[0:-count] + str(count)
            res.append( temp_res )
            return

        # append 1
        self.helper( index+1, word, temp_res+'1', res, count+1)

        # append word
        if count!=0:
            temp_res = temp_res[0:-count] + str(count)
        self.helper( index+1, word, temp_res+word[index], res, 0)


Mistake

1.

if index==len(word)-1

should be

if index==len(word)

Rerun code by myself at the first time.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: