力扣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();
      }
  };
相关推荐
小道仙971 小时前
jenkins对接、jenkins-rest
java·servlet·jenkins·jenkins-rest
小陈phd2 小时前
多模态大模型学习笔记(七)——多模态数据的表征与对齐
人工智能·算法·机器学习
雨泪丶2 小时前
代码随想录算法训练营-Day35
算法
pursuit_csdn3 小时前
LeetCode 1022. Sum of Root To Leaf Binary Numbers
算法·leetcode·深度优先
莫寒清3 小时前
MinIO
java
NAGNIP3 小时前
一文搞懂神经元模型是什么!
人工智能·算法
董董灿是个攻城狮4 小时前
AI 视觉连载6:传统 CV 之高斯滤波
算法
踩坑记录4 小时前
leetcode hot100 35. 搜索插入位置 medium 二分查找
leetcode
Java后端的Ai之路4 小时前
【JDK】-JDK 21 新特性内容
java·开发语言·后端·jdk·jdk21