缩写只是偷懒?不,它其实是一个典型“状态爆炸”问题
缩写只是偷懒?不,它其实是一个典型“状态爆炸”问题
你以为缩写就是把单词缩短?
错。计算机眼里,这叫“组合生成 + 状态压缩”。
更扎心的是:一个长度为 n 的单词,缩写结果有2ⁿ 种。
这不是偷懒,这是指数级爆炸。
一、引子:一个看似简单的问题,为什么让人写崩了?
面试里经常有一道题:
给定一个单词,列举它的所有缩写形式
比如:word
输出可能是:
word 1ord w1rd wo1d wor1 2rd w2d wo2 1o1d ... 4很多人第一反应是:
👉 “这不就是随便替换字符吗?”
然后写着写着就乱了:
- 数字怎么拼接?
- 连续字符怎么压缩?
- 怎么避免重复?
最后写出一坨 if-else 地狱。
二、本质拆解:这题到底在考什么?
说白了就一句话:
👉每个字符都有两种选择:保留 or 被压缩
这就是典型的:
👉二叉决策树(DFS / 回溯)
但难点不在“选”,而在“如何记
