【Swift】LeedCode 电话号码的字母组合
【Swift】LeedCode 电话号码的字母组合由于各大平台的算法题的解法很少有Swift的版本,小编这边将会出个专辑为手撕LeetCode算法题。新手撕算法。请包涵!!!给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1:输入:digits = "23"输出:["ad","
·
【Swift】LeedCode 电话号码的字母组合
由于各大平台的算法题的解法很少有Swift的版本,小编这边将会出个专辑为手撕LeetCode算法题。新手撕算法。请包涵!!!
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
示例 1:
输入:digits = "23"
输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]
示例 2:
输入:digits = ""
输出:[]
示例 3:
输入:digits = "2"
输出:["a","b","c"]
提示:
0 <= digits.length <= 4
digits[i] 是范围 ['2', '9'] 的一个数字
class Solution {
func letterCombinations(_ digits: String) -> [String] {
//0-9
var dataArray = ["","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"]
var array:[String] = []
var arr:[String] = []
//如果输入空字符串的话
if digits == ""{
return []
}
//把输入的数字提取出对应的字母
for digit in digits{
let index = stringToInt(str:String(digit))
array.append(dataArray[index])
}
if array.count == 1{
for item in array[0]{ //如果只输入了一个数的话
print(item)
arr.append(String(item))
}
}else if array.count == 2{ //如果输入了两个数的话
for index in 0..<array.count-1{
for item in array[index]{
for item2 in array[index+1]{
print("\(item),\(item2)")
var str = String("\(item)\(item2)")
arr.append(str)
}
}
}
}else if array.count == 3{ //如果输入三个数的话
for index in 0..<array.count-2{
for item in array[index]{
for item2 in array[index+1]{
for item3 in array[index+2]{
print("\(item),\(item2)")
var str = String("\(item)\(item2)\(item3)")
arr.append(str)
}
}
}
}
}else if array.count == 4{ //如果输入四个数的话
for index in 0..<array.count-3{
for item in array[index]{
for item2 in array[index+1]{
for item3 in array[index+2]{
for item4 in array[index+3]{
print("\(item),\(item2)")
var str = String("\(item)\(item2)\(item3)\(item4)")
arr.append(str)
}
}
}
}
}
}
return arr
}
//字符串转Int类型
func stringToInt(str:String) -> Int{
if str == "1"{
return 1
}else if str == "2"{
return 2
}else if str == "3"{
return 3
}else if str == "4"{
return 4
}else if str == "5"{
return 5
}else if str == "6"{
return 6
}else if str == "5"{
return 5
}else if str == "7"{
return 7
}else if str == "8"{
return 8
}else if str == "9"{
return 9
}else{
return 0
}
}
}
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)