力扣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();
      }
  };
相关推荐
m0_73691910几秒前
编译器命令选项优化
开发语言·c++·算法
OpenMiniServer3 分钟前
电气化能源革命下的社会
java·人工智能·能源
naruto_lnq7 分钟前
C++中的工厂方法模式
开发语言·c++·算法
独自破碎E7 分钟前
LCR_019_验证回文串II
java·开发语言
坚持就完事了11 分钟前
Java中的一些关键字
java·开发语言
千逐-沐风17 分钟前
SMU-ACM2026冬训周报2nd
算法
寄存器漫游者36 分钟前
数据结构 C语言 顺序栈
java·c语言·数据结构
heartbeat..38 分钟前
Redis 性能优化全指南:从基础配置到架构升级
java·redis·性能优化·架构
m0_748233171 小时前
C#与C语言:5大核心语法共性
java·jvm·算法
JavaGuide1 小时前
推荐一个基于 Spring Boot 4.0 + Java 21 + Spring AI 2.0 的大模型项目!
java·spring boot·spring