2023-02-04 20:24阅读: 19评论: 0推荐: 0

《剑指Offer》-58-Ⅱ-左旋字符串

string reverseLeftWords(string s, int n) {
string res;
for (int i = n; i < s.size(); i++) res.push_back(s[i]);
for (int i = 0; i < n; i++) res.push_back(s[i]);
return res;
}

平平无奇写法

还有一种写法是这样的,可以不使用额外空间,思路可能比较巧妙,但是我并不觉得好

string reverseLeftWords(string s, int n) {
/* 反转n前面的字符串 */
reverse(s.begin(), s.begin() + n);
/* 反转n后面的字符串 */
reverse(s.begin() + n, s.end());
/* 反转整个字符串 */
reverse(s.begin(), s.end());
return s;
}

首先reverse()函数并不能保证每种语言都有实现,我希望要么不使用,要么就使用更基础的方法——每种语言都会有实现
其次虽然我不知道reverse()方法的具体实现,但是我猜复杂度应该是 2N,算是时间换空间

本文作者:YaosGHC

本文链接:https://www.cnblogs.com/yaocy/p/17092310.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   YaosGHC  阅读(19)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起