力扣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();
      }
  };
相关推荐
上弦月-编程5 分钟前
高效编程利器:转移表技术解析
c语言·开发语言·数据结构·算法·排序算法
薇茗6 分钟前
【初阶数据结构】 左右逢源的分支诗律 二叉树2
c语言·数据结构·算法·二叉树
AZaLEan__8 分钟前
算法考核题解
算法
seven97_top17 分钟前
Tomcat 线程池的设计与实现:StandardThreadExecutor
java·tomcat
MediaTea21 分钟前
AI 术语通俗词典:ID3 算法
人工智能·算法
Morwit22 分钟前
【力扣hot100】 221. 最大正方形
前端·算法·leetcode
Javatutouhouduan24 分钟前
大厂Java岗最新面试真题汇总!
java·java面试·后端开发·java编程·java程序员·互联网大厂·java八股文
逻辑驱动的ken25 分钟前
Java高频面试考点场景题23
java·开发语言·数据库·面试·职场和发展·哈希算法
xxjj998a32 分钟前
PHP vs Java:核心区别与应用场景全解析
java·开发语言·php
呃呃本36 分钟前
算法题(矩阵)
线性代数·算法·矩阵