华为OD机试2025C卷-字母组合[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率

华为OD机试2025C卷-字母组合[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率


文章目录

    • 在这里插入图片描述 @[TOC]
  • 前言
  • 一:题目描述
    • 题目名称
    • 题目内容
    • 输入描述
    • 输出描述
    • 示例
    • **示例4:** 输入为空字符串"",无输出。
  • 二:解题思路
    • 解法一:多重循环(仅适用于固定长度)
    • 解法二:最优解—回溯(Backtracking / DFS)
  • 三:代码实现
    • C++
    • Java
    • Python3
    • C语言
    • JavaScript
    • Go
  • 四:复杂度分析
  • 五:易错点

前言

手机九宫格键盘上的字母映射是每个人日常生活中都会接触到的设计——按下一个数字键"2",可能对应字母’a’、‘b’或’c’。华为OD机试2025C卷中的"字母组合"题目正是基于这一经典场景:给定一串数字(2-9),要求输出这些数字所能表示的全部字母组合。这道题考察的是回溯算法(Backtracking)的核心思想——通过深度优先搜索(DFS)在候选集合中枚举所有可能的排列,是算法面试中的高频考点。本文将从暴力多重循环引出回溯DFS,再给出C++、Java、Python3、C语言、JavaScript和Go六种语言的完整实现,确保100%通过率。


一:题目描述

题目名称

字母组合

题目内容

手机的九宫格键盘上,数字2-9分别对应若干字母,映射关系如下:

  • 2 → “abc”
  • 3 → “def”
  • 4 → “ghi”
  • 5 → “jkl”
  • 6 → “mno”
  • 7 → “pqrs”
  • 8 → “tuv”
  • 9 → “wxyz”

给定一个只包含数字2-9的字符串digits,请返回所有