力扣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();
      }
  };
相关推荐
bIo7lyA8v6 分钟前
算法优化中的多线程数据一致性问题的技术8
算法
東隅已逝,桑榆非晚7 分钟前
数据结构:算法效率与复杂度分析详解
数据结构·笔记·算法
闪电悠米9 分钟前
黑马点评-Redisson-02_reentrant_lock
java·spring boot·redis·分布式·缓存
凌波粒11 分钟前
LeetCode--236. 二叉树的最近公共祖先(二叉树)
算法·leetcode·职场和发展
云烟成雨TD13 分钟前
Spring AI Alibaba 1.x 系列【67】ReactAgent SSE 流式输出
java·人工智能·spring
半夜修仙13 分钟前
分治思想对数组进行排序-归并排序
数据结构·算法·排序算法
数智工坊15 分钟前
周志华《Machine Learning》学习笔记--第六章--支持向量机
笔记·神经网络·学习·算法·机器学习·支持向量机
casual~17 分钟前
【学习记录】
学习·算法
社交怪人20 分钟前
【奇偶ASCII值】信息学奥赛一本通C语言解法(题号1042)
算法