力扣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();
      }
  };
相关推荐
冬天豆腐几秒前
Springcloud,Nacos管理,打jar包后,启动报错
java·spring cloud·maven·jar
2401_874732538 分钟前
泛型编程与STL设计思想
开发语言·c++·算法
季远迩12 分钟前
54.螺旋矩阵(中等)
算法
今儿敲了吗18 分钟前
44| 汉诺塔问题
数据结构·c++·笔记·学习·算法·深度优先
redgxp18 分钟前
SpringBoot3整合FastJSON2如何配置configureMessageConverters
java
空空kkk22 分钟前
Java集合——List
java
telllong22 分钟前
C++20 Modules:从入门到真香
java·前端·c++20
米粒127 分钟前
力扣算法刷题 Day 15
算法·leetcode·职场和发展
程序员小崔日记32 分钟前
一道基础计算题卡在 40 分,求助判题规则问题
java·算法·竞赛
是Yu欸33 分钟前
LangGraph 智能体状态管理与决策
java·javascript·数据库