电话号码的字母组合

vector<string> letterCombinations(string digits) {
        int cur = 0;

        vector<string> result;
        vector<string> temp2;
        while (digits[cur] != '\0')
        {
            string curChars = GetCharString(digits[cur]);
            if (result.size() == 0)
            {
                result.push_back("");
            }
            for (int i = 0; i < result.size(); ++i)
            {
                for (int j = 0; j < curChars.length(); ++j)
                {
                    string curStr = result[i];
                    temp2.push_back(curStr.append(1, curChars[j]));
                }
            }

            result = temp2;
            temp2.clear();

            ++cur;
        }

        return result;
    }

    string GetCharString(char c)
    {
        switch (c)
        {
            case '2':
                return "abc";
            case '3':
                return "def";
            case '4':
                return "ghi";
            case '5':
                return "jkl";
            case '6':
                return "mno";
            case '7':
                return "qprs";
            case '8':
                return "tuv";
            case '9':
                return "wxyz";
        }
    }

Comments