力扣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();
      }
  };
相关推荐
马优晨1 分钟前
JAVA 中 VO 实体类是什么意思,为什么要做这个
java·开发语言·状态模式·java vo·java vo是什么
026d2311 分钟前
状态信号只知“其然”不知“其所以然”:变工况机械故障诊断的物理盲区
算法
Baron X26 分钟前
Eclipse Temurin 21 (JRE) Alpine 镜像获取、离线导入与推送操作
java·docker·eclipse·temurin
姜鱼问生29 分钟前
备份和服务器在同一台机器上,等于没备份
算法·架构
姜鱼问生36 分钟前
别再 chmod 777 了,用 ACL 给它开一扇窗
后端·算法·架构
孙浩君39 分钟前
我用 Spring Boot + xterm.js 写了个终端风格互动叙事游戏引擎:游戏即文件,上传一个 JSON 就能玩
java
jose1 小时前
URL 里多写了一个端口,为什么请求还能调通?
java·后端
特立独行的猫a1 小时前
仓颉语言UI开发实战:我用仓颉写了个桌面版力扣
算法·leetcode·ui·tauri·仓颉·cj-tarui
孙浩君1 小时前
我用 Spring Boot 写了个「终端风格模拟经营游戏引擎」:引擎 + JSON 游戏文件,开箱即玩
java
y1su1 小时前
Leetcode 动态规划 模板
java·数据结构·算法·leetcode·动态规划