(java)leetcode-17

    xiaoxiao2021-04-04  39

    Letter Combinations of a Phone Number

    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"].

    Note: Although the above answer is in lexicographical order, your answer could be in any order you want.

    解题思路:

    这道题,大概就是将string转为int,然后找到对应的字符串进行添加就好了。

    大概就是一个组合的东西,我也没想到什么简要的办法,所以就不断循环添加。

    [java] view plain copy print ? public class Solution {      public List<String> letterCombinations(String digits) {          String[] ans = {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};          List<String> result = new ArrayList<String>();          if(digits == "" || digits.length() == 0)              return result;          result.add("");          int[] num = new int[digits.length()];          for(int i = 0;i<digits.length();i++)          {              num[i] = digits.charAt(i)-'0';          }          for(int k = 0;k<digits.length();k++)          {              if(num[k]<2)                  continue;              List<String> midans = new ArrayList<String>();              String s1 = ans[num[k]];              for(int i = 0;i<result.size();i++)              {                  for(int j = 0;j<s1.length();j++)                  {                      midans.add(result.get(i)+s1.charAt(j));                  }              }              result = midans;          }          return result;      }  }   public class Solution { public List<String> letterCombinations(String digits) { String[] ans = {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"}; List<String> result = new ArrayList<String>(); if(digits == "" || digits.length() == 0) return result; result.add(""); int[] num = new int[digits.length()]; for(int i = 0;i<digits.length();i++) { num[i] = digits.charAt(i)-'0'; } for(int k = 0;k<digits.length();k++) { if(num[k]<2) continue; List<String> midans = new ArrayList<String>(); String s1 = ans[num[k]]; for(int i = 0;i<result.size();i++) { for(int j = 0;j<s1.length();j++) { midans.add(result.get(i)+s1.charAt(j)); } } result = midans; } return result; } }

    转载请注明原文地址: https://ju.6miu.com/read-666185.html

    最新回复(0)