✏Leetcode之PHP版题目解析(17. Letter Combinations of a Phone Number)
✏描述
让我们根据电话号码的数字,组合所有情况的字符串,题目给的是23,对应着九种组合。
✏题目实例
✏题目分析
思想就是把给定的数字一位位拿出来,获取它指定的字符串集,然后和其他位上的数字字符串集和一位位进行组合。
✏解法一
/**
* @param String $digits
* @return String[]
*/
function letterCombinations($digits) {
return $this->helper($digits,"");
}
function helper($digits,$char)
{
$array = ["", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"];
$res=[];
$strings=$array[$digits[0]];
$len=strlen($strings);
for($i=0;$i<$len;$i++){
$val=$strings[$i];
if(strlen($digits)==1){ //如果给定只有一个数字的话
array_push($res,$char.$val);
}else{
$moreStrings=$this->helper(substr($digits,1),$char.$val);
foreach($moreStrings as $more){
array_push($res,$more);
}
}
}
return $res;
}
转载链接:https://leetcode.cn/