力扣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();
      }
  };
相关推荐
Alsian几秒前
Day41 TensorBoard
人工智能·算法·机器学习
DolphinScheduler社区1 分钟前
Apache DolphinScheduler 3.4.1 发布,新增任务分发超时检测
java·数据库·开源·apache·海豚调度·大数据工作流调度
美好的事情能不能发生在我身上5 分钟前
Leetcode热题100中的:矩阵专题
算法·leetcode·矩阵
黑眼圈子5 分钟前
Java正则表达式基础知识
java·开发语言·正则表达式
Tisfy6 分钟前
LeetCode 3296.移山所需的最少秒数:优先队列
算法·leetcode·题解·优先队列·模拟
iPadiPhone6 分钟前
性能优化的“快车道”:Spring @Async 注解深度原理与大厂实战
java·后端·spring·面试·性能优化
彭于晏Yan6 分钟前
JsonProperty注解的access属性
java·spring boot
㓗冽7 分钟前
龟兔赛跑预测-进阶题6
算法
云泽8087 分钟前
蓝桥杯算法精讲:贪心算法的简单应用与题解
算法·贪心算法·蓝桥杯
程序员夏末11 分钟前
【LeetCode | 第四篇】算法笔记
笔记·算法·leetcode