力扣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();
      }
  };
相关推荐
梦梦代码精1 小时前
BuildingAI 上部署自定义工作流智能体:5 个实用技巧
大数据·人工智能·算法·开源软件
Mr_pyx1 小时前
Spring AI 入门教程:Java开发者的AI应用捷径
java·人工智能·spring
Zephyr_02 小时前
Leedcode算法题
java·算法
流年如夢2 小时前
栈和列队(LeetCode)
数据结构·算法·leetcode·链表·职场和发展
苍煜2 小时前
Java开发IO零基础吃透:BIO、NIO、同步异步、阻塞非阻塞
java·python·nio
折哥的程序人生 · 物流技术专研3 小时前
Java面试85题图解版(一):基础核心篇
java·开发语言·后端·面试
AllData公司负责人3 小时前
通过Postgresql同步到Doris,全视角演示AllData数据中台核心功能效果,涵盖:数据入湖仓,数据同步,数据处理,数据服务,BI可视化驾驶舱
java·大数据·数据库·数据仓库·人工智能·python·postgresql
Hello.Reader3 小时前
算法基础(十)——分治思想把大问题拆成小问题
java·开发语言·算法
一只大袋鼠3 小时前
JavaWeb四种文件上传方式(下篇)
java·开发语言·springmvc·javaweb