2796. 重复字符串
2022年4月27日大约 1 分钟
2796. 重复字符串
String.prototype.replicate = function (times) {
return Array.from({ length: times }, () => this).join('')
}题目要点
「2796. 重复字符串」属于 API 行为建模题,关键在于把题面语义转成可验证的函数契约与状态约束。
思路拆解
- 提取题目的显式规则与隐式规则(返回值、this 语义、副作用范围)。
- 用最小可行实现覆盖主路径,再逐步补齐异常路径。
- 对原型扩展题优先保证幂等性与可组合性,避免污染全局行为。
复杂度分析
- 时间复杂度:通常由单次调用的内部循环或字符串/数组操作决定。
- 空间复杂度:重点观察闭包捕获、中间数组与临时对象创建开销。
边界与测试
- 非法参数、缺省参数、类型不匹配。
- 多次调用、链式调用、上下文切换。
- 与原生行为对齐性(是否符合语言规范直觉)。
工程实践
将“语义规则”写成注释清单并配套最小测试样例,比只给实现代码更利于长期复用。
总结
建模题的沉淀价值在于形成可迁移的语义模板:先定契约,再写实现,最后用反例校验边界。
