手撕:字符串全排列(去重),不用额外的存储空间,串怎么去重?
考察说明
考察递归回溯实现全排列的能力,以及在不使用额外存储空间条件下对重复排列的去重处理
回答思路
- 能写出递归回溯生成全排列的框架,正确交换或选择字符
- 能识别重复排列产生的根本原因:同一位置选择相同字符
- 说明不额外使用集合等存储空间的去重策略:先排序后剪枝,或利用交换层的字符去重判断
- 代码逻辑清晰,边界条件(空串、单字符、全相同字符)处理正确
- 能分析时间复杂度并说明去重不影响整体复杂度量级
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。