力扣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();
      }
  };
相关推荐
Shea的笔记本2 分钟前
MindSpore实战笔记:Pix2Pix图像转换复现全记录
笔记·算法·机器学习·web3
清酒难咽5 分钟前
算法案例之蛮力法
c++·经验分享·算法
摇滚侠6 分钟前
在 IDEA 中,GIT 合并分支时选择远程的 dev 分支和本地的 dev 分支,有区别吗
java·git·intellij-idea
想逃离铁厂的老铁13 分钟前
Day50 >> 98、可达路径 + 广度优先搜索理论基础
算法·深度优先·图论
fanruitian15 分钟前
k8s 更新镜像
java·服务器·kubernetes
散峰而望17 分钟前
【数据结构】假如数据排排坐:顺序表的秩序世界
java·c语言·开发语言·数据结构·c++·算法·github
En^_^Joy18 分钟前
Kubernetes Pod控制器深度解析(K8s)
java·容器·kubernetes
海棠AI实验室19 分钟前
第十五章 字典与哈希:高效索引与去重
算法·哈希算法
LYOBOYI12323 分钟前
qml程序运行逻辑
java·服务器·数据库
独自破碎E25 分钟前
动态规划-打家劫舍I-II
算法·动态规划