力扣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();
      }
  };
相关推荐
资生算法程序员_畅想家_剑魔几秒前
Java常见技术分享-13-多线程安全-锁机制-底层核心实现机制
java·开发语言
passxgx3 分钟前
11.3 迭代法和预条件子
线性代数·算法·矩阵
萤丰信息3 分钟前
数智重构生态:智慧园区引领城市高质量发展新范式
java·大数据·人工智能·安全·智慧城市
悟空码字9 分钟前
MySQL分库分表,从“一室一厅”到“豪华别墅区”的数据库升级之旅
java·后端·mysql
Lisonseekpan10 分钟前
RBAC 基于角色的访问控制模型详解与实践指南
java·服务器·网络·后端·spring·log4j
X在敲AI代码11 分钟前
【无标题】
算法·leetcode·职场和发展
bubiyoushang88812 分钟前
NSGA-II 带精英策略的双目标遗传算法
算法
qq_4308558813 分钟前
线代第二章矩阵第八节逆矩阵、解矩阵方程
线性代数·算法·矩阵
奔跑的小十一20 分钟前
ShardingSphere-JDBC 开发手册
java·数据库
lkbhua莱克瓦2420 分钟前
基础-MySQL概述
java·开发语言·数据库·笔记·mysql