<?php
|
|
|
|
|
|
class Solution
|
|
{
|
|
const letters = [
|
|
2 => ['a','b','c'],
|
|
3 => ['d','e','f'],
|
|
4 => ['g','h','i'],
|
|
5 => ['j','k','l'],
|
|
6 => ['m','n','o'],
|
|
7 => ['p','q','r','s'],
|
|
8 => ['t','u','v'],
|
|
9 => ['w','x','y','z']
|
|
];
|
|
|
|
/**
|
|
* @param mixed $digits
|
|
* @access public
|
|
* @return array
|
|
*/
|
|
public static function letterCombinations($digits): array
|
|
{
|
|
if ($digits === '') {
|
|
return [];
|
|
}
|
|
|
|
$lookupResult = [];
|
|
$x = 0;
|
|
while (count($lookupResult) === 0) {
|
|
$lookupResult = self::letters[$digits[$x]] ?? [];
|
|
$x++;
|
|
}
|
|
|
|
for ($i = 1; $i < strlen($digits); $i++) {
|
|
$temp = [];
|
|
|
|
foreach (self::letters[$digits[$i]] as $char) {
|
|
foreach ($lookupResult as $r) {
|
|
$temp[] = $r . $char;
|
|
}
|
|
}
|
|
|
|
$lookupResult = $temp;
|
|
}
|
|
return $lookupResult;
|
|
}
|
|
|
|
}
|