lichao_normal

导航

Letter Combinations of a Phone Number

import java.awt.BufferCapabilities;
import java.util.ArrayList;
import java.util.List;


public class Solution {
    public List<String> letterCombinations(String digits) {
        String[] str=new String[]{"abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
        int size=1;
        for(int i=0;i<digits.length();i++)
            if(digits.toCharArray()[i]=='7'||digits.toCharArray()[i]=='9')size*=4;
            else size*=3;
        List<String> list=new ArrayList<String>();
        int i=0;
        while(i<digits.length()){
            if(list.isEmpty()){
                for(int j=0;j<str[digits.toCharArray()[i]-'2'].length();j++){
                    char c=str[digits.toCharArray()[i]-'2'].toCharArray()[j];
                    StringBuffer buff=new StringBuffer();
                    buff.append(c);
                    list.add(buff.toString());
                }
            }
            else{
                int index=0;
                int count=list.size();
                while(index<count){
                    String temp=list.get(0);
                    for(int j=0;j<str[digits.toCharArray()[i]-'2'].length();j++)
                    {
                        char c=str[digits.toCharArray()[i]-'2'].toCharArray()[j];
                        list.add(temp+String.valueOf(c));
                    }
                    list.remove(temp);
                    index++;
                }
            }
            i++;
        }
        return list;
    }
    public static void main(String[] args){
        new Solution();
    }
    public Solution(){
        letterCombinations("234");
    }
}
View Code

 

posted on 2016-11-24 15:24  lichao_normal  阅读(72)  评论(0)    收藏  举报