Python练习

您所在的位置:网站首页 high的字母组合 Python练习

Python练习

2024-01-11 01:58| 来源: 网络整理| 查看: 265

一.题目描述:

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按任意顺序返回。

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母 在这里插入图片描述

二.输出示例:

示例 1:

输入:digits = "23" 输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]

示例 2:

输入:digits = "" 输出:[]

示例 3:

输入:digits = "2" 输出:["a","b","c"] 三.代码: import copy def letterCombinations(digits) : conversion={'2':'abc','3':'def','4':'ghi','5':'jkl','6':'mno','7':'pqrs','8':'tuv','9':'wxyz'} if len(digits)==0: return [] product=[''] for k in digits: tmp = [] for i in product: for j in conversion[k]: tmp.append(i + j) product = copy.deepcopy(tmp) return product if __name__ == '__main__': digits=input() r=letterCombinations(digits) print(r) 这一部分可以替换 tmp = [] for i in product: for j in conversion[k]: tmp.append(i + j) product = copy.deepcopy(tmp) 替换成 product=[i+j for i in product for j in conversion[k]]

主要运用了关于for i in list1: 中i变量的内容 python中copy()和deepcopy()详解 Python List append()方法 大佬的代码:

def letterCombinations(digits): num={'2':'abc','3':'def','4':'ghi','5':'jkl','6':'mno','7':'pqrs','8':'tuv','9':'wxyz'} a=[] #答案集合 if digits=='': return a for i in num[digits[0]]: #将输入的第一个数字对应的值添加到答案集合a中 a.append(i) for i in digits[1:]: #依次遍历s的第二个字符及以后的字符 a1=[] #存 一集合与答案集合的笛卡尔积(让a1指向[],使原指向内容丢失) for j in num[i]: a2=[] #存 一个集合中的 每 一个元素与答案集合中的每一个元素复合的结果(让a2指向[],使原指向内容丢失) for k in a: a2.append(k+j) #将一个集合中的一个元素与答案集合中的每一个元素复合 a1=a1+a2 #'+'表示连接关系 a=a1 #将答案集合a指向:一个集合与原答案集合的笛卡尔积 return a

运用了[Python求笛卡尔积]



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3