力扣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();
      }
  };
相关推荐
Samson Bruce6 分钟前
【docker swarm】
java·docker·eureka
csg11076 分钟前
LORA网络的“最后一公里”难题:当信号被重重阻挡,我们有哪些“方法”来增强覆盖?
单片机·嵌入式硬件·物联网·算法
brave and determined7 分钟前
传感器学习(day18):智能手机3D结构光:解锁未来的第三只眼
嵌入式硬件·算法·3d·智能手机·tof·嵌入式设计·3d结构光
CoovallyAIHub8 分钟前
当小龙虾算法遇上YOLO:如何提升太阳能电池缺陷检测精度?
深度学习·算法·计算机视觉
Tisfy11 分钟前
LeetCode 756.金字塔转换矩阵:深度优先搜索
leetcode·矩阵·深度优先
代码笔耕11 分钟前
面向对象开发实践之消息中心设计(四)--- 面向变化的定力
java·设计模式·架构
okseekw11 分钟前
Java动态代理实战:手把手教你实现明星经纪人模式
java·后端
Wang153012 分钟前
c++与Java谁的性能更胜一筹
java·c++
学习3人组15 分钟前
Conda虚拟环境迁移指南导出依赖库并跨设备重建环境
java·数据库·conda