题目链接

思路

一个一个遍历就好了,不难。

代码

  1. class Solution {
  2. fun letterCombinations(digits: String): List<String> {
  3. if (digits.isEmpty()) return emptyList()
  4. val map = mapOf(
  5. '2' to arrayOf('a', 'b', 'c'),
  6. '3' to arrayOf('d', 'e', 'f'),
  7. '4' to arrayOf('g', 'h', 'i'),
  8. '5' to arrayOf('j', 'k', 'l'),
  9. '6' to arrayOf('m', 'n', 'o'),
  10. '7' to arrayOf('p', 'q', 'r', 's'),
  11. '8' to arrayOf('t', 'u', 'v'),
  12. '9' to arrayOf('w', 'x', 'y', 'z')
  13. )
  14. var result = mutableListOf("")
  15. var index = 0
  16. while (index < digits.length) {
  17. var nowList = mutableListOf<String>()
  18. val char = digits[index]
  19. result.forEach{str ->
  20. map[char]?.forEach {c ->
  21. nowList.add(str + c)
  22. }
  23. }
  24. index++
  25. result = nowList
  26. }
  27. return result
  28. }
  29. }