w******1 发帖数: 520 | 1 Each key on the telephone represents a list of letters. Given a telephone
number, please write a program to output all the possible strings the
telephone number represents | j**l 发帖数: 2911 | 2 Programming Interview Exposed不是有这道题的详细解答么 | O*******r 发帖数: 753 | 3 精华区里有吗?
【在 j**l 的大作中提到】 : Programming Interview Exposed不是有这道题的详细解答么
| l****k 发帖数: 65 | | w******1 发帖数: 520 | 5 programming interview exposed? | j**l 发帖数: 2911 | 6 找工作的,会不知道这本PIE书么?
虽然里面的题目大部分过时了,但不失经典
【在 w******1 的大作中提到】 : programming interview exposed?
| w******1 发帖数: 520 | 7 下载了一个版本, 扫描版本的, 用不了搜索功能
这个题目的思路是什么? | j**l 发帖数: 2911 | 8 为简化问题,我们假设每位数字都只对应三个字母
本质上,这题是一个三叉树的遍历(只需要叶子节点),所以是可以用递归来做的
void GenerateWords(vector &result, const vector &digits, int
whichletter[], int index, int n)
{
if (index == n)
{
// We get a word, then we can store it to result
string temp;
for (int i = 0; i < n; i++)
temp[i] = (numberToLetter(digits[i])) [whichletter[i]];
result.push_back(temp);
return;
}
for (int i = 0; i < 3; i++)
{
whichletter[index] = i;
【在 w******1 的大作中提到】 : 下载了一个版本, 扫描版本的, 用不了搜索功能 : 这个题目的思路是什么?
| w******1 发帖数: 520 | | P*******b 发帖数: 1001 | 10 这里把index+1放在循环体里面应该是不对的吧。
for (int i = 0; i < 3; i++)
{
whichletter[index] = i;
GenerateWords(result, digits, whichletter, index + 1, n);
}
【在 j**l 的大作中提到】 : 为简化问题,我们假设每位数字都只对应三个字母 : 本质上,这题是一个三叉树的遍历(只需要叶子节点),所以是可以用递归来做的 : void GenerateWords(vector &result, const vector &digits, int : whichletter[], int index, int n) : { : if (index == n) : { : // We get a word, then we can store it to result : string temp; : for (int i = 0; i < n; i++)
|
|