力扣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();
      }
  };
相关推荐
Lanthanmum23 分钟前
P1505 [国家集训队] 旅游
数据结构·算法
阿史大杯茶24 分钟前
Codeforces Round 968 (Div. 2 ABCD1D2题) 视频讲解
数据结构·c++·算法
Jiu-yuan1 小时前
牛客小白月赛99 F-自爆机器人
算法·动态规划
给你。1 小时前
JZ13 机器人的运动范围
数据结构·c++·算法·机器人·剑指offer
nihui1231 小时前
如何监控Spring Boot 项目运行情况?
java·spring boot·后端
W.KN1 小时前
JAVA—日志技术
java·笔记
huisheng_qaq1 小时前
【netty系列-08】深入Netty组件底层原理和基本实现
java·netty·context·eventloop·channelhandler·netty原理及实现
不知名舍友1 小时前
消息对列,共享内存
linux·c语言·数据结构·算法
markingyi1 小时前
趣味算法------过河卒
c语言·数据结构·算法·动态规划
窦鑫锐1 小时前
Spring框架
java·数据库·spring