c#题例-2025-08-25 16:33:09
日期: 2025-08-25 分类: AI写作 5次阅读
实现一个高效的字符串压缩算法,要求如下:
- 输入是一个字符数组 `char[] chars`,其中每个字符都是小写字母('a' 到 'z')。
- 压缩规则:将连续重复的字符序列替换为原字符后跟该字符连续出现的个数。例如,`"aaa"` 应被替换为 `"a3"`;若字符只出现一次,则只保留字符本身,如 `"ab"` 保持不变。
- 修改必须**在原地**完成,即不使用额外的数据结构。
- 返回压缩后的字符数组**有效长度**。
示例:
```csharp
输入:['a','a','a','b','b','c','c','c','c']
输出:6,压缩后的数组为:['a','3','b','2','c','4']
```
注意:
- 字符可能出现超过10次的情况,例如`"aaaaa"`应压缩为`"a5"`。
- 不允许使用任何类库函数来简化操作,例如 `ToString()` 或 `String.Concat()`。
- 要求时间复杂度为 O(n),空间复杂度为 O(1)。
请写出完整的函数签名和实现。
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
标签:AI写作
上一篇:无
精华推荐