力扣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();
      }
  };
相关推荐
Cher ~几秒前
【数据结构】hash表(unordered_map)
java·数据结构·c++·算法·哈希算法
一起养小猫1 分钟前
Flutter for OpenHarmony 实战:食物生成算法与难度递增系统
算法·flutter
zfj3217 分钟前
好书分享:《两周自制脚本语言》-用java实现一个脚本语言
java·开发语言·python·编译原理
u0109272719 分钟前
自定义类型转换机制
开发语言·c++·算法
hetao17338379 分钟前
2026-01-27 hetao1733837 的刷题笔记
c++·笔记·算法
索荣荣20 分钟前
Java反射:从入门到实战的终极指南
java·开发语言
Tisfy21 分钟前
LeetCode 3650.边反转的最小路径总成本:Dijkstra算法
算法·leetcode··dijkstra·题解·迪杰斯特拉
2401_8384725124 分钟前
自定义操作符重载指南
开发语言·c++·算法
Leo6553524 分钟前
easyExcel 的动态列导出把文本转为数值格式,可以进行函数计算
java
鹿角片ljp29 分钟前
力扣136.只出现一次的数字-异或和HashMap
java·数据结构·算法·leetcode