力扣2296.设计一个文本编辑器

力扣2296.设计一个文本编辑器

  • 对顶栈

    • 将光标看作左右栈的分隔
    • 添加元素:往左栈添加元素
    • 删除元素:从左栈删除元素
    • 光标左(右)移:左(右)栈元素加到右(左)栈
cpp 复制代码
  class TextEditor {
      string left,right;
  public:
      TextEditor() {
  
      }
      
      void addText(string text) {
          left += text;
      }
      
      int deleteText(int k) {
          k = min(k,(int)left.size());
          left.resize(left.size() - k);
          return k;
      }
      
      string text()
      {
          return left.substr(max((int)left.size() - 10,0));
      }
      string cursorLeft(int k) {
          for(;k && !left.empty();k--)
          {
              right += left.back();
              left.pop_back();
          }
          return text();
      }
      
      string cursorRight(int k) 
      {
          for (; k && !right.empty(); --k) 
          {
              left += right.back();
              right.pop_back();
          }
          return text();
      }
  };
相关推荐
尾善爱看海2 分钟前
前端面试算法手撕全解(高频真题+标准答案)
算法·js
秋饼16 分钟前
Spring AI 2.0 多模型路由网关:Astra/Sol 到国产模型的智能调度与降级
java·ai·技术分享·后端开发
Wang's Blog19 分钟前
Java框架快速入门: Spring Security+OAuth2之密码存储安全进化与实践
java·安全·spring
203号居民21 分钟前
LeetCode hot 100 — 138. 随机链表的复制
算法·leetcode·链表
小七在进步26 分钟前
C++入门(3)
android·java·c++
前端 贾公子29 分钟前
Milvus使用指南 (下)
java·服务器·前端
凌晨16831 分钟前
OpenCV(十一)人脸识别三大算法LBPH、EigenFace、FisherFace
人工智能·opencv·算法
Rain的Java大神之路32 分钟前
高并发场景下MySQL数据库性能优化实战
java·后端·mysql
明月_清风33 分钟前
分治、贪心、回溯、动态规划:四种经典算法思想
后端·算法
步行cgn44 分钟前
OCP开闭原则:面向对象设计的核心原则
java·开发语言·开闭原则