力扣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();
      }
  };
相关推荐
想进个大厂12 小时前
代码随想录day63 64 65 66 图论08 09 10 11
c++·算法·图论
云泽80812 小时前
蓝桥杯算法精讲:双指针算法四大经典例题深度剖析
算法·职场和发展·蓝桥杯
AD钙奶-lalala12 小时前
SpringBoot 4.0.3配置Swagger
java·spring boot·后端
小龙报12 小时前
【算法通关指南:算法基础篇】二分算法: 1.A-B 数对 2.烦恼的高考志愿
c语言·开发语言·数据结构·c++·vscode·算法·二分
seven97_top12 小时前
NIO:解开非阻塞I/O高并发编程的秘密
java
小六溜了12 小时前
模块二十.双列集合
java
23.12 小时前
【Java】NIO 中的多路复用(Selector / Channel)机制
java·面试·nio
yong999012 小时前
NNDA、PDA、JPDA、IMM数据关联算法MATLAB实现
开发语言·算法·matlab
七夜zippoe12 小时前
Docker容器化实战:核心概念、镜像制作与多阶段构建全解析
java·jvm·数据库·docker·oracle·容器化