李成笔记网

专注域名、站长SEO知识分享与实战技巧

17. 电话号码的字母组合 17电话号码的字母组合

今天继续讲解liquid题库中的难度题第十七题:电话号码的字母组合。读看一下题目,给定一个仅包含数字二字九的字符串,返回所有能表示的字母组合,答案可以按任意顺序返回。给出数字到字母的映射如下:

与电话按键相同,注意一不对应任何数字,任何字母。这是一种传统的电话按键,手机上也可以调这种,反正它对二十六个字母对应的这八个数字分别是:a2对应a2,c3对应d e f,4对应j h,i5对应j k,l6对应mn,o7对应p q r s,8对应t u v,9对应w x y v。

输入二,三,二,有a b c,三的是d e f,它的组合就是a d f b d f和c d f组成九种组合。如果是空串就是个空的,如果是二只有一个就各自返回。像这种情况其实可以用深度优先,各种场,各种把各种场景匹配出来就可以了。

长度是小于四,顶多四个字母,范围是二到九,因为长度大于等于零有可能为零。先判断一下如果入串为空就直接返回一个空的list。现在有二到九个字母,每个字母对应的映射的字符是不一样的,就需要一个字典来通过数的数字来确定映射出哪些字母。

要确定一下首先二对应的a b c,三并着e f,四对应的g h,i5对应的g对应的j k l6,in the mn o p,in the p q r s,八in the tuv,九有对应的w x y z。

再看一下二对应a b c,三对应d f,四对应g h,i5对应jkl,六等于对应mno,七对应pqis,八对应tuv,九对应wsyz,这些要注意不要细节错了。

然后要定一个表返回的列表is,返回is就可以了,但是要写一个深度优选函数,同时要确定一下这个猪的吃饭长度,看每一个深度够不深度,是不是把字符给循环完了。

然后定一个深度先的函数d f,d f s要两个值,第一个根据每个字符,每个字数字去拼的字符串s,同时它的深度其实还是一样的。如果深度到了,深度等于n已经到了,说明自助算也拼完了,就需要把当前拼的制服差而判断到历史当中然后return,否则就是要把每个字母的字符全部循环出来一个个尝试,就是循环循环的。

循环的字符来自哪里了?来自的四点,四点,需要确定当前的数字来自哪里?要根据它的深度来确定数字串的深度,确定是哪个数字。

·数字在四点中对应确定的字符,循环字符,意思就直接d、s、s就可以了。s等于什么?s输入进的s就是加上一个当前的字符,c加一个当前字符,立刻加一,深度加一就可以了。

·六加一完成之后函数,相当于函数就写完了,函数写完了之后就要调用一下函数,传入一个控制不上,深度也为零就可以了。

测试一下,结果完全正确,提交一下。通过这道题,无非就是每个数字通过深度优先的方法,每个数字都扩展一下,相当于形成了一个类似于字典数这种场景,把所有的种类都匹配出来,添加到list中,再返回就可以了。这道题其实相对比较简单。

今天的课程讲完了,谢谢大家。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言