力扣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();
      }
  };
相关推荐
黎阳之光17 小时前
虚实同源·数智治水:黎阳之光视频孪生,重构智慧水务新范式
运维·物联网·算法·安全·数字孪生
江屿风17 小时前
C++OJ题经验总结(竞赛)4
开发语言·c++·笔记·算法·dp·双指针
Deep-w17 小时前
【MATLAB】微电网四DG逆变器下垂策略与分布式MPC协同控制仿真分析
开发语言·分布式·算法·matlab
码上有光17 小时前
c++: 继承(下)
android·java·c++·多继承·菱形继承·虚继承
JAVA96517 小时前
JAVA面试-并发篇 02-synchronized 锁可以重入吗
java·面试
手写码匠17 小时前
华为云Flexus+DeepSeek征文|万字实战:MaaS 推理服务 + Dify 高可用部署 + AI Agent 开发全流程
人工智能·深度学习·算法·aigc
yu859395817 小时前
基于卡尔曼滤波器的集中式机器人轨迹定位算法
算法·机器人
RemainderTime17 小时前
Spring Boot脚手架集成Sa-Token实现生产级RBAC权限管理
java·spring boot·后端·系统架构
进击的荆棘17 小时前
优选算法——栈
数据结构·c++·算法·leetcode·
韦胖漫谈IT17 小时前
选语言不是站队,是选适合问题的工具
java·python·ai·rust·go·技术落地