力扣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();
      }
  };
相关推荐
ChaoZiLL3 分钟前
二叉树经典例题
数据结构·算法
(╹◡╹)16 分钟前
11.RK3588本地大模型内存评估优化
java·linux·前端
不正经学生21 分钟前
C语言字符串函数进阶:安全版函数 + 错误处理 + 子串查找
c语言·开发语言·c++·算法·面试
ITKEY_32 分钟前
neovim基于nvim-jdtls 开发java报错
java·开发语言
leon8733 分钟前
MyBatis-Plus与AOP实现动态数据权限过滤的实践与踩坑记录
java
电气研究所34 分钟前
Java + Redis 实现工业设备告警去抖,避免变频器故障重复推送
java·前端
無限進步D34 分钟前
Java 代码块
java·开发语言
三克的油37 分钟前
算法基础-1
数据结构·c++·算法
用户31268748772039 分钟前
@Async 加了没生效?Spring Boot 异步编程全链路拆解:从线程池到自调用陷阱
java·spring boot
oort12339 分钟前
OortCodex 是奥尔特云 OortCloudSmart 推出的国产化工程化 AI 编码 Agent(奥尔特云编码智能体)
大数据·人工智能·算法