首页 > 其他 > 详细

phone number

时间:2017-04-13 11:01:32      阅读:198      评论:0      收藏:0      [点我收藏+]

problem description:

you should change the given digits string into possible letter string according to the phone keyboards.

i.e.

input ‘23‘

output [‘ad‘,‘ae‘,‘af‘,‘bd‘,‘be‘,‘bf‘,‘cd‘,‘ce‘,‘cf‘]

 

the python solution 

first you should realize this a iteration process, so you can use many iterate process to handle this problem.reduce fuction is a important iteration function in python.reduce(function , iterator, start),this is it‘s base form,the first function must have two parameter, the first parameter will be used to record the result,and the other just to fetch the number in the iterator.start can be omitted, then the fisrt result fetch from the iterator the first num,if not the start means the original result.After know the reduce fuction, we know can use it to solve this problem.

in python:

lists = [‘a‘,‘b‘]

for in in ‘abc‘:

  lists += i 

return lists

then the lists will be [‘aa‘,‘ab‘,‘ac‘,‘ba‘,‘bb‘,‘bc‘],base on this feacture, so give the below solution 

class Solution(object):
    def letterCombinations(self, digits):
        """
        :type digits: str
        :rtype: List[str]
        """
        if digits == ‘‘: return []
        phone = {2:abc,3:def,4:ghi,5:jkl,
        6:mno,7:pqrs,8:tuv,9:wxyz}
        return reduce(lambda x,y:[a+b for a in x for b in phone[y]],digits, [‘‘])

this solution is so smart.Thanks to huxley  publish such a great  method to deal with this issue.

I f you still can not understand this method, there is another simple way.

class Solution(object):
    def letterCombinations(self, digits):
        """
        :type digits: str
        :rtype: List[str]
        """
        if len(digits) == 0:
            return []
        phone = {2:abc,3:def,4:ghi,5:jkl,
        6:mno,7:pqrs,8:tuv,9:wxyz} 
       
        result = [‘‘]
        for i in digits:
            temp = []
            for j in result:
                for k in phone[i]:
                    temp.append(j + k)
            result = temp
        return result

 

phone number

原文:http://www.cnblogs.com/whatyouknow123/p/6702780.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!