力扣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();
      }
  };
相关推荐
雨中飘荡的记忆12 小时前
保证金系统入门到实战
java·后端
Nyarlathotep011312 小时前
Java内存模型
java
CoovallyAIHub12 小时前
语音AI Agent编排框架!Pipecat斩获10K+ Star,60+集成开箱即用,亚秒级对话延迟接近真人反应速度!
深度学习·算法·计算机视觉
木心月转码ing14 小时前
Hot100-Day14-T33搜索旋转排序数组
算法
暮色妖娆丶16 小时前
不过是吃了几年互联网红利罢了,我高估了自己
java·后端·面试
NE_STOP17 小时前
MyBatis-参数处理与查询结果映射
java
会员源码网17 小时前
内存泄漏(如未关闭流、缓存无限增长)
算法
狂奔小菜鸡17 小时前
Day40 | Java中的ReadWriteLock读写锁
java·后端·java ee
颜酱18 小时前
从0到1实现LFU缓存:思路拆解+代码落地
javascript·后端·算法