力扣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();
      }
  };
相关推荐
Gofarlic_OMS12 小时前
UG/NX许可证管理高频技术问题解答汇编
java·大数据·运维·服务器·汇编·人工智能
逐星ing12 小时前
IDEA 无法识别 `mvn install` 最新 SNAPSHOT 依赖的根因与完整解决方案
java·ide·intellij-idea
Chat_zhanggong34512 小时前
主推NT98336BG作用有哪些?
嵌入式硬件·算法
流觞 无依12 小时前
Spring Boot 未授权访问漏洞排查与修复指南
java·spring boot·后端
Java开发的小李12 小时前
SpringBoot 高流量高并发 基础全面讲解
java·spring boot·后端·性能优化
随风,奔跑13 小时前
Spring Cloud Alibaba(六)-链路追踪SkyWalking
java·后端·spring·skywalking
wuminyu13 小时前
专家视角看Lambda表达式的原理解析
java·linux·c语言·jvm·c++
wangbing112513 小时前
Java处理csv文件总是丢数据
java·开发语言·python
云烟成雨TD13 小时前
Spring AI 1.x 系列【30】向量数据库:核心 API 和入门案例
java·人工智能·spring
Run_Teenage13 小时前
算法:线段树
算法