leetcode

    xiaoxiao2021-03-25  128

    https://leetcode.com/problems/letter-combinations-of-a-phone-number/?tab=Description

    Given a digit string, return all possible letter combinations that the number could represent.

    A mapping of digit to letters (just like on the telephone buttons) is given below.

    Input:Digit string "23" Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

    题意:题意很简答。

    解答:看别人的代码只有几十行,我写了好多呀,各种情况,不过我的容易懂吧~

    class Solution { public:     vector<string> letterCombinations(string digits)     {         int length=digits.length();         vector<string> v;         int digit[length+1];         for(int i=0; i<length; i++)         {             digit[i]=digits[i]-'0';             if(i==0)             {                 if(digit[i]==2)                 {                     {                         v.push_back("a");                         v.push_back("b");                         v.push_back("c");                         v.erase(v.begin());                     }                 }                 if(digit[i]==3)                 {                     {                         v.push_back("d");                         v.push_back("e");                         v.push_back("f");                     }                 }                 if(digit[i]==4)                 {                     {                         v.push_back("g");                         v.push_back("h");                         v.push_back("i");                         v.erase(v.begin());                     }                 }                 if(digit[i]==5)                 {                     {                         v.push_back("j");                         v.push_back("k");                         v.push_back("l");                         v.erase(v.begin());                     }                 }                 if(digit[i]==6)                 {                     {                         v.push_back("m");                         v.push_back("n");                         v.push_back("o");                         v.erase(v.begin());                     }                 }                 if(digit[i]==7)                 {                     {                         v.push_back("p");                         v.push_back("q");                         v.push_back("r");                         v.push_back("s");                         //.erase(v.begin()+j);                     }                 }                 if(digit[i]==8)                 {                     {                         v.push_back("t");                         v.push_back("u");                         v.push_back("v");                         v.erase(v.begin());                     }                 }                 if(digit[i]==9)                 {                     {                         v.push_back("w");                         v.push_back("x");                         v.push_back("y");                         v.push_back("z");                        // //v.erase(v.begin());                     }                 }                 continue;             }             if(digit[i]==2)             {                 int size=v.size();                 for(int j=0; j<size; j++)                 {                     v.push_back(v[j]+"a");                     v.push_back(v[j]+"b");                     v.push_back(v[j]+"c");                     //v.erase(v.begin());                 }                 for(int j=0;j<size;j++){                     v.erase(v.begin());                 }             }             if(digit[i]==3)             {                 int size=v.size();                 for(int j=0; j<size; j++)                 {                     v.push_back(v[j]+"d");                     v.push_back(v[j]+"e");                     v.push_back(v[j]+"f");                     //v.erase(v.begin());                 }                 for(int j=0;j<size;j++){                     v.erase(v.begin());                 }             }             if(digit[i]==4)             {                 int size=v.size();                 for(int j=0; j<size; j++)                 {                     v.push_back(v[j]+"g");                     v.push_back(v[j]+"h");                     v.push_back(v[j]+"i");                     //v.erase(v.begin());                 }                 for(int j=0;j<size;j++){                     v.erase(v.begin());                 }             }             if(digit[i]==5)             {                 int size=v.size();                 for(int j=0; j<size; j++)                 {                     v.push_back(v[j]+"j");                     v.push_back(v[j]+"k");                     v.push_back(v[j]+"l");                     //v.erase(v.begin());                 }                 for(int j=0;j<size;j++){                     v.erase(v.begin());                 }             }             if(digit[i]==6)             {                 int size=v.size();                 for(int j=0; j<size; j++)                 {                     v.push_back(v[j]+"m");                     v.push_back(v[j]+"n");                     v.push_back(v[j]+"o");                     //v.erase(v.begin());                 }                 for(int j=0;j<size;j++){                     v.erase(v.begin());                 }             }             if(digit[i]==7)             {                 int size=v.size();                 for(int j=0; j<size; j++)                 {                     v.push_back(v[j]+"p");                     v.push_back(v[j]+"q");                     v.push_back(v[j]+"r");                     v.push_back(v[j]+"s");                     //v.erase(v.begin());                 }                 for(int j=0;j<size;j++){                     v.erase(v.begin());                 }             }             if(digit[i]==8)             {                 int size=v.size();                 for(int j=0; j<size; j++)                 {                     v.push_back(v[j]+"t");                     v.push_back(v[j]+"u");                     v.push_back(v[j]+"v");                     //v.erase(v.begin());                 }                 for(int j=0;j<size;j++){                     v.erase(v.begin());                 }             }             if(digit[i]==9)             {                 int size=v.size();                 for(int j=0; j<size; j++)                 {                     v.push_back(v[j]+"w");                     v.push_back(v[j]+"x");                     v.push_back(v[j]+"y");                     v.push_back(v[j]+"z");                     //v.erase(v.begin());                 }                 for(int j=0;j<size;j++){                     v.erase(v.begin());                 }             }         }         return v;     } };
    转载请注明原文地址: https://ju.6miu.com/read-7816.html

    最新回复(0)