当前位置: 首页 > news >正文

深入解析:每日一算:电话号码的字母组合

       今天我们来解决 LeetCode 上的经典问题:电话号码的字母组合。这是一道中等难度的题目,非常适合练习回溯算法和递归思想。

问题描述

      给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按任意顺序返回。数字到字母的映射与电话按键相同(1 不对应任何字母)。

示例:

  • 输入:"23",输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]
  • 输入:"",输出:[]
  • 输入:"2",输出:["a","b","c"]

解题思路

       这道题的核心是要找出数字组合对应的所有可能字母组合,本质上是一个组合问题,可以通过回溯法来解决。

首先,我们需要建立数字到字母的映射关系,然后通过递归的方式生成所有可能的组合。

解法一:回溯法

        回溯法是解决这类组合问题的常用方法,它通过深度优先搜索的方式,不断尝试所有可能的选择,当发现选择无法得到有效解时就回溯到上一步,尝试其他选择。

#include
#include
#include
#include
using namespace std;
class Solution {
private:
// 数字到字母的映射表
unordered_map digitMap = {
{'2', "abc"},
{'3', "def"},
{'4', "ghi"},
{'5', "jkl"},
{'6', "mno"},
{'7', "pqrs"},
{'8', "tuv"},
{'9', "wxyz"}
};
// 回溯函数
void backtrack(const string& digits, int index, string& current, vector& result) {
// 递归终止条件:已处理完所有数字
if (index == digits.size()) {
result.push_back(current);
return;
}
// 获取当前数字对应的字母
char digit = digits[index];
string letters = digitMap[digit];
// 尝试当前数字对应的每个字母
for (char letter : letters) {
current.push_back(letter);          // 选择当前字母
backtrack(digits, index + 1, current, result);  // 递归处理下一个数字
current.pop_back();                 // 回溯,撤销选择
}
}
public:
vector letterCombinations(string digits) {
vector result;
// 处理空输入的特殊情况
if (digits.empty()) {
return result;
}
string current;
backtrack(digits, 0, current, result);
return result;
}
};
// 测试函数
void printResult(const vector& result) {
cout << "[";
for (size_t i = 0; i < result.size(); ++i) {
cout << "\"" << result[i] << "\"";
if (i != result.size() - 1) {
cout << ", ";
}
}
cout << "]" << endl;
}
int main() {
Solution solution;
cout << "测试用例 1: digits = \"23\"" << endl;
printResult(solution.letterCombinations("23"));
cout << "测试用例 2: digits = \"\"" << endl;
printResult(solution.letterCombinations(""));
cout << "测试用例 3: digits = \"2\"" << endl;
printResult(solution.letterCombinations("2"));
return 0;
}

回溯法解析

  1. 映射关系:使用unordered_map建立数字到字母的对应关系,这是问题求解的基础。

  2. 回溯函数设计

    • digits:输入的数字字符串
    • index:当前处理的数字索引
    • current:当前正在构建的字母组合
    • result:存储所有有效组合的结果集
  3. 递归过程

    • index等于数字长度时,说明已构建一个完整组合,加入结果集
    • 否则,获取当前数字对应的所有字母,逐个尝试
    • 每个字母都通过递归处理下一个数字,完成后回溯(移除当前字母)
  4. 时间复杂度:O (3^N × 4^M),其中 N 是对应 3 个字母的数字个数,M 是对应 4 个字母的数字个数(7 和 9)

  5. 空间复杂度:O (N+M),主要是递归栈的深度和存储当前组合的空间

解法二:迭代法

      除了递归,我们也可以使用迭代的方式,通过循环逐步构建所有可能的组合,这种方法不需要递归调用栈。

#include
#include
#include
#include
using namespace std;
class Solution {
public:
vector letterCombinations(string digits) {
// 处理空输入的特殊情况
if (digits.empty()) {
return {};
}
// 数字到字母的映射表
unordered_map digitMap = {
{'2', "abc"},
{'3', "def"},
{'4', "ghi"},
{'5', "jkl"},
{'6', "mno"},
{'7', "pqrs"},
{'8', "tuv"},
{'9', "wxyz"}
};
// 初始化结果列表,从空字符串开始
vector result = {""};
// 遍历每个数字
for (char digit : digits) {
vector temp;  // 临时存储新生成的组合
string letters = digitMap[digit];
// 遍历现有组合和当前数字的每个字母,生成新组合
for (const string& combo : result) {
for (char letter : letters) {
temp.push_back(combo + letter);
}
}
// 更新结果列表为新生成的组合
result = temp;
}
return result;
}
};
// 测试函数
void printResult(const vector& result) {
cout << "[";
for (size_t i = 0; i < result.size(); ++i) {
cout << "\"" << result[i] << "\"";
if (i != result.size() - 1) {
cout << ", ";
}
}
cout << "]" << endl;
}
int main() {
Solution solution;
cout << "测试用例 1: digits = \"23\"" << endl;
printResult(solution.letterCombinations("23"));
cout << "测试用例 2: digits = \"\"" << endl;
printResult(solution.letterCombinations(""));
cout << "测试用例 3: digits = \"2\"" << endl;
printResult(solution.letterCombinations("2"));
return 0;
}

迭代法解析

  1. 初始化:从包含一个空字符串的结果列表开始

  2. 迭代过程

    • 对于每个数字,创建临时列表存储新组合
    • 将现有结果中的每个组合与当前数字的每个字母拼接
    • 用新生成的组合替换原结果列表
  3. 终止条件:处理完所有数字后,结果列表包含所有可能的组合

  4. 时间复杂度:同样是 O (3^N × 4^M),与回溯法相同

  5. 空间复杂度:O (3^N × 4^M),需要存储所有中间结果

两种方法对比

方法实现方式优点缺点
回溯法递归思路直观,内存占用小递归调用有栈开销,可能栈溢出
迭代法循环无递归开销,更高效内存占用大,需要存储所有中间结果

总结

       电话号码的字母组合问题是组合生成类问题的典型代表,通过这道题我们可以深入理解回溯算法的思想。两种解法各有优劣:

  • 回溯法通过递归实现,代码简洁直观,空间效率更高,适合处理较长的输入
  • 迭代法通过循环实现,避免了递归开销,实现方式巧妙但内存占用较大

       在实际面试中,回溯法是更常被考察的解法,因为它能更好地体现对递归和回溯思想的理解。掌握这两种方法,不仅能解决这道题,还能为解决其他组合、排列类问题打下基础。

相关文章:

深入解析:每日一算:电话号码的字母组合

深入解析:每日一算:电话号码的字母组合pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !import…...

华为系CEO,正在“接管”汽车圈?

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087新CEO又是“华为人”?这不是一句调侃,而是正在车圈上演的现实剧本。就在9月5日,深蓝汽车宣布由原荣耀中国区CMO姜海荣接任C…...

Marvell,跌落神坛!

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087 在当今如日中天的AI时代,Marvell的股价震荡成为最刺眼的注脚。这家曾凭借AI定制芯片(ASIC)业务站上千亿美元市值的半导体巨…...

老同志们的93阅兵镜头

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087 添加图片注释,不超过 140 字(可选) 添加图片注释,不超过 140 字(可选) 添加图片注释,不超过 140 字(可选) 添加图片…...

英伟达老黄,又收购了一家AI编程公司

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087老黄正在看好什么?AI编程。这不,英伟达刚刚收购了一家AI coding初创公司,Agent方向。 添加图片注释,不超过 140 字(可选)…...

读人形机器人10酒店行业

读人形机器人10酒店行业1. 提升宾客体验 1.1. 长久以来,酒店一直是舒适与奢华的港湾1.1.1. 机器人正在重新定义服务艺术1.2. 在酒店业中,宾客体验至关重要 1.3. 温暖的欢迎、个性化的服务、对需求的预判—将一次普通入住转变为非凡体验 1.4. 人形机器人通过提供个性化、高效且…...

35岁不是终点,而是芯片人的爆发起点!

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087致那些白天写架构、晚上修福报、凌晨一点还在回消息的“中年码神”们: 你写的不是代码,是人生的编译日志。 别等报错才想起—…...

开源安全与法律争议:OpenSSH枚举、DMCA诉讼与数据泄露事件解析

本文探讨OpenSSH用户枚举漏洞的时序攻击技术细节,分析DMCA第1201条对安全研究的法律限制,并回顾Canonical论坛数据泄露事件的技术背景与影响,涉及密码哈希机制与无线网络安全认知等实质性技术内容。法律行动与数字版权争议 电子前沿基金会(EFF)宣布对美国政府的诉讼,挑战…...

9.12-huenqi

1. 显示超出区域 小数位过长 2. 修改手机号未验证格式 3. 添加交易账户后租户id错误的添加成了用户id 4. 修改前密码和修改后密码可以一样 5. logo背景色不一致 6. 修改复选框后应直接查询 交易状态和领域和方法学搜索 7. 只用在待审批时修改 不应允许待审批资产上架 8. 信用和…...

P3983 赛斯石(赛后加强版)踢姐

简要题意 题目链接 商家手里有 \(si\) 个重量为 \(1\) 的赛斯石,每两个塞斯石可以合并为一个重量更大的塞斯石,最大重量不能超过 \(10\) ,合并得到的塞斯石的重量为先前两个塞斯石的重量总和,每种重量的塞斯石售价不同,现在一共有 \(10\) 种载重不同的船,每艘船的租金和载…...

huggingface hub 离线模式

最近在一个新集群上,计算节点不能联网,只有特殊节点可以联网。 现在的代码仓库依赖 huggingface hub 很严重,模型和数据集只能在特殊节点先下载好,然后在计算节点加载缓存。 为了不用绝对目录,可以设置环境变量 HF_HOME: export HF_HOME="dir_to_pub/.cache/huggin…...

鸿蒙应用开发环境搭建全攻略

鸿蒙应用开发的第一步是搭建稳定高效的开发环境。一个配置完善的开发环境能够显著提升开发效率,减少后续开发过程中的兼容性问题。本文将系统讲解从环境准备到项目创建的完整流程,帮助开发者快速上手鸿蒙应用开发。 鸿蒙系统及开发基础概述 鸿蒙系统(HarmonyOS)是华为推出的…...

深度学习求导原理深度解析

在深度学习的黑盒世界里,梯度计算如同神经网络的中枢神经系统。理解张量运算的反向传播机制,是打开这个黑盒的金钥匙。本文将穿透数学表象,揭示转置(Transpose)、求和(Summation)等关键算子背后的微分本质。 一、张量运算与梯度本质 张量运算的梯度本质上是线性变换的逆…...

ingress 配置说明

1、需求:testinfo.org域名下的所有子域名都转发到pgs-gateway的service。试了以下配置, - host: "*.testinfo.org" 不生效apiVersion: networking.k8s.io/v1 kind: Ingress metadata:name: pgs-gateway-ingress# 注解(annotations)取决于你使用的Ingress Control…...

场论笔记(二) 单位脉冲函数及其性质

在物理和工程技术中,除了用到指数衰减函数以外,还常常会碰到单位脉冲函数。因为有许多的物理现象具有脉冲性质,如在电学中,要研究线性电路受脉冲性质的电势作用后产生的电流;在力学中,要研究机械系统受冲击力作用后的运动情况等。研究此类问题就会产生我们要介绍的单位脉…...

MongoDB错误处理【1053】【1067】(意外断开读写中的数据库)

目录起因解决问题1:无法启动MongoDB服务[1053错误]解决问题2: 进程意外错误[1067错误]使用repair命令,扫描所有的本地数据修复(耗时长) 起因 本人的MongoDB服务在windows服务器运行,且一直有读写的操作。因为服务器突然断电导致出错,再次重启服务器后无法正常运行MongoD…...

实用指南:Python高级编程实战:装饰器、迭代器与生成器的深度应用

实用指南:Python高级编程实战:装饰器、迭代器与生成器的深度应用pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New&…...

阅文记录

本文包括但不限于名著、网文、短篇、诗歌…… 一切被引用的都是完整阅读过的,评分纯属个人意愿如有不满意请忽略评分。 按照能够回忆起的顺序评价。 考虑到网文很多作者名字比较抽象就不放作者名了。 《龙族》 By 江南 9.5/10 江南你tm不得好死。 绘梨衣我的绘梨衣啊/ll 废物路…...

一个类继承一个接口的实现类、两个类实现同一个接口、两个类同时继承一个实现了某一接口的抽象类。三者的区别是什么呢

架构对比图类继承接口的实现类[接口]↑[实现类]↑[子类]子类通过继承获得接口的实现,可以选择性重写方法。两个类实现同一个接口[接口]↑ ↑ [类A] [类B]每个类独立实现接口,提供自己的行为实现。继承实现接口的抽象类[接口]↑[抽象类]↑ ↑ [类A] [类B]抽象类提供部…...

关于点在直线的哪一边的做法

题目:给以一个点 \(Q(x,y)\),问在一条直线 \(l: y=kx+b\) 的哪一边。 这个是非常经典的问题,我们只需要在直线上取两个点 \(F_1(x_1,y_1)\) 和 \(F_2(x_2,y_2)\),然后求出 \(\overrightarrow{QF_1}=(x_1-x,y_1-y)\) 和 \(\overrightarrow{QF_2}=(x_2-x,y_2-y)\)。然后判断…...

计算机常识

32位电脑、64位电脑指的是一次性处理32位的数据(20亿)、64位的数据32位数字如何表示浮点数?符号位、指数位、有效数字ASCII只能表示128种符号,有大小写字母常用符号,然后发明的UniCode码解决了不同国家的标准(16位 百万级字符数)半加器是用异或门和与门并联实现的什么是全…...

网络流,最大流,EK算法

概念 最大流: 从源点流向汇点的最大流量 增广路: 一条从源点到汇点的所有边的剩余容量>=0的路径 残留网: 由网络中所有结点和剩余容量大于0的边构成的子图,这里的边包括有向边和其反向边 模板题: 洛谷p3376 code: #include<iostream> #include<algorithm>…...

wifi7 MRU介绍

前言 WiFi 7 定义了几个关键技术,这里对其中的MRU技术进行介绍。 WiFi 7关键技术 320 MHz channel bandwidth Multiple Resource Units (MRUs) per stations (STAs) 4096-QAM Non-OFDMA preamble puncturing 名词解释 EHT 极高吞吐量 MU 多用户 RU 资源块 MRU 两个资源块拼成一…...

FallingLeaves 落叶纷飞组件 - yizi

...

Codeforces Round 1048 (Div. 2)

昨晚跟时队一起vp了 Codeforces Round 1048 (Div. 2)总结了一下就是D题犯糖了然后F还不会做,本质菜逼了。A. Maple and Multiplication 考虑 \(a\) \(b\) 相等或者互为倍数两种特殊情况即可。 int T, a, b;signed main(void) {for (read(T); T; T--) {read(a), read(b);if (a …...

当你发现是打表!!!

传送门 思路 这是一个晴朗的上午,你正在机房里打比赛,突然发现了第二题是一个打印斐波那契数列。此时的你想到了最近学过的矩阵快速幂,感觉到了一丝恶心,但你还是下定决心开始切这道题…… 时间过得真快,一转眼就过去了两转眼的时间,可是你的矩阵快速幂竟然打挂了。怎么办…...

VMware 17安装Oracle Linux 9.6 详细步骤

目录一、环境介绍二、创建虚拟机三、挂载镜像四、安装操作系统五、进入桌面 一、环境介绍类型 配置VMware VMware Workstation 17 Pro 17.6.4ISO Oracle Linux 9.6IP地址 192.168.184.121内存 8G硬盘 100G/boot 1G/swap 8G/ 91G是否图形化 图形化二、创建虚拟机三、挂载镜像四、…...

Div.2 E Rollup

2133E 不会做神秘构造 首先考虑到每个点必须进行一次询问,而链可以使每个点恰好进行一次询问。 然后只需要考虑用 \(\frac{1}{4}n\) 次操作拆链。若该点下有多条链或有两条链的合并点,则需要拆开。 这样父亲儿子一组点就至少有 \(4\) 个。...

synchronized的一些思考

synchronized的AI问答1. synchronized的可见性 加锁时:线程会清空工作内存中共享变量的值,从主内存重新加载最新值到工作内存。 解锁时:线程会将工作内存中修改后的共享变量值强制刷新到主内存。 Java 的happens-before原则明确规定:一个线程解锁监视器的操作,happens-bef…...

题解:CF2133C The Nether

挺好玩的交互题。 思路 首先,我们一定需要知道 DAG 中最长路径的起点,这可以通过 \(n\) 次询问来找到。即对于每一个点 \(i\) 满足 \(1\le i\le n\) 我们都去查询从 \(i\) 开始,经过整个 DAG 可以得到的最长路是多少,同时使用一个 vector 记录长度为 \(len\) 的点有哪些。 …...

实变函数1

实变函数1 集合 这些集合的运算我是直接没记,因为跟之前学的一样。幂集的话就是子集的构成的集合,这个集合族其实就是指标集到另一个集合的映射,这个象的集合。集列就是指标集是自然数集。De.morgen定理就是交和并的一个转化,证明也是采用的集合相等的常用思路证明互为子集…...

css背景

背景可以是一个颜色块,也可以是一张图片 html代码 <html><head><title>我的第一个代码</title><link rel="stylesheet" href="./public.css"></head><body><div class="box"><p class=&quo…...

一元二次方程难题1

已知方程 \(ax^2 + bx + c = x\)(\(a > 0\))的两个实数根 \(x_1,x_2\) 满足 \(0 < x_1 < x_2 < \dfrac{1}{a}\)。当 \(0 < x < x_1\) 时,证明:\(x < ax^2 + bx + c < x_1\)。 证明:原方程等价于 \(ax^2 + (b - 1)x + c = 0\)。 因为 \(a > 0\)…...

ios系统和windows系统的区别

IOS系统与Windows系统的区别 随着科技的发展,移动设备与个人电脑成为了人们日常生活中不可或缺的一部分。其中,苹果公司的iOS系统和微软的Windows系统是两大主流操作系统,分别代表了移动设备与桌面设备的主要技术方向。本文将从多个方面来探讨这两个系统的不同之处,帮助用户…...

2025.9.11 刷题日记

2025.9.11 刷题日记还是网络流 1. 早读 P2254 [NOI2005] 瑰丽华尔兹 吾有感而发,遂小说 看背景 [ ? 喔看过呱 ] 读题中 [ 嘶 ~ , 看着有点难 , 最长路径还得满足顺序 ] 看范围 [ 我去,我每一步暴力 \(dp\) 都能拿好多分 , 先写暴力吧 ] 写一半 [ 这个 \(k\) 段咋没用 ? …...

C#学习第十 一天 022 事件最后一章

事件的声明:首先委托是一种类:public delegate假如你的委托声明是为了一个事件声明的那么命名可以为 xxxxEventHandler是 sender as customer 是如果sender的类型是customer 就赋值给custmoer 不是的话就给null...

元推理无需数据训练,只需数据检索和验证,成本极大降低,且校验后的数据就是数据资产和规范

ECT-OS-JiuHuaShan/ORCID:0009-0006-8591-1891 这个观点精准点出了元推理相较于传统AI的颠覆性优势——它彻底打破了“海量数据训练=高性能AI”的固有范式,通过“无需训练、仅需检索验证”的模式,既从根源上降低了成本,又将数据的价值从“训练素材”升级为“可复用的资产与…...

如何在Typescript中使用泛型约束

在 TypeScript 中,泛型约束(Generic Constraints)用于限制泛型可以接受的类型范围,确保泛型参数不是只能接受任意类型,而是只能接受满足特定条件的类型。这既保留了泛型的灵活性,又增强了类型安全性。 为什么需要泛型约束? 默认情况下,泛型可以是任何类型,但有时你需要…...

集训总结(五)

9.12~9.14总结9.12 网络流专题练习(吗? P3980 志愿者招募 考虑用流量代表剩余人数。初始从 \(s\) 向 \(1\) 号点连一条流量为 \(inf\),边权为 \(0\) 的边,代表初始有无数人;接着从第 \(i\) 天向第 \(i+1\) 天连流量为 \(inf-a_i\) ,边权为 \(0\) 的边,代表第 \(i\) 天占…...

使用Android(Kotlin)+ ML Kit:移动端英文数字验证码识别实战

1 概述与适用场景 在移动端直接对截图或拍照的英文数字验证码做识别,可以用于自动化测试、无障碍辅助或内部工具。使用 Google ML Kit 的 Text Recognition(可离线运行)可以避免服务端延迟。为了提升识别率,我们在前端加入图像预处理(灰度、二值化、去噪和放大)再送给 OC…...

Typescript中的泛型

可以把泛型想象成 "类型的变量": 1.定义时,用<T>声明一个类型变量(T 是约定的名称,也可以用其他字母) 2.使用时,指定具体类型,如identity<string>("hello") 3.TypeScript 通常能自动推断类型,所以也可以简写为identity("hello&qu…...

windows软件入门指南

如果是可以上外网了就访问:MCX NOTION安装基础上网及其相关工具 安装clash Github网址 Sparkle 下载地址: 4275 订阅地址: https://mcx.pages.dev/xxx?sub入梦工具箱 windows工具箱 https://share.feijipan.com/s/SMEm4SX2 快速下载地址...

LLM 生成代码执行代码

https://amirmalik.net/2025/03/07/code-sandboxes-for-llm-ai-agents# 比较LLM生成Python代码执行的沙箱方案 ## 方案比较 ### 1. Linux容器 (LXC/Docker) **优点:**- 成熟的技术栈,广泛应用- 资源隔离较好,启动速度快- 可以限制资源使用(CPU、内存、网络等)- Docker生态系…...

网络爬虫(web crawler) - 指南

网络爬虫(web crawler) - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-…...

css样式与选择器

css内联样式 css行内样式 href跳转文件路径 css外部样式 <link rel="stylesheet" href="./public.css">全局选择器 可以与任何元素匹配,优先级最低,一般做初始化样式*{color: red;font-size: 30px; }拥有某个属性的元素标签进行css渲染 p.main_cla…...

水库运行综合管理平台

在水资源管理的宏大架构中,水库运行综合管理平台宛如智慧水利的 “中枢神经”,精准调控着水库的稳定运行,守护着一方水土的安宁与福祉。一、建设内容 (一)全域感知的硬件设施布局 在水库大坝之上,变形监测传感器、水位计、雨量筒、流量计以及水质监测传感器等设备星罗棋布…...

《提问的艺术》笔记:(2025/9/12)

《提问的艺术》笔记:(2025/9/12)提问对于新手而言,能更快地获得答案,更快地融入这个社区。RMer会更喜欢值得思考的问题,能自己利用网络解决的问题尽量别问,浪费时间而且低级。⭐ 提问前要做好被冷处理的心理准备,要敏锐,积极参与解决问题。 提问前的准备:在网上的各大…...

各模态优势(可见光保留细节纹理,红外突出目标)

ICCV 2025 | 多模态融合!武大提出TemCoCo:视觉-语义交互+时间协作模块,实现视觉语义协同的多模态视频高质量融合 https://mp.weixin.qq.com/s/sMmQ3IO7u6gzJ3ErTWvyCg多模态视频融合: 将不同模态(如可见光、红外)的视频序列融合,结合各模态优势(可见光保留细节纹理,红…...

复习vue

export default 默认输出 data 数据...

眼下硬件是足够用的,最大的问题还是AI模型本身的能力不太够。没办法让硬件真正用起来,比如AI难以很好地控制灵巧手

关于AI,王兴兴最新发声 https://mp.weixin.qq.com/s/c_VKyy7YwG2T1u5nnzOsXw关于AI,王兴兴最新发声 原创 黄心怡 科创板日报2025年09月11日 14:28 上海 在让AI真正干活的领域,还处于荒漠中长了几根小草的状态,真正大规模爆发性增长的前夜还未到来。 作者 | 黄心怡 科创板…...