力扣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();
      }
  };
相关推荐
未来之窗软件服务5 分钟前
SenseVoicecpp ggml-hexagon.cpp大模型[AI人工智能(七十九)]—东方仙盟
人工智能·算法·仙盟创梦ide·东方仙盟
xiaoye-duck6 分钟前
《算法题讲解指南:动态规划算法--子数组系列》--25.单词拆分,26.环绕字符串中唯一的子字符串
c++·算法·动态规划
Fcy64810 分钟前
算法基础详解(二)枚举算法——普通枚举与二进制枚举
算法·枚举算法
Java成神之路-23 分钟前
Spring IOC 注解开发实战:从环境搭建到纯注解配置详解(Spring系列3)
java·后端·spring
承渊政道25 分钟前
【优选算法】(实战:栈、队列、优先级队列高频考题通关全解)
数据结构·c++·笔记·学习·算法·leetcode·宽度优先
py有趣27 分钟前
力扣热门100题之将有序数组转为二叉搜索树
算法·leetcode
天若有情67330 分钟前
Python精神折磨系列(完整11集·无断层版)
数据库·python·算法
凌波粒32 分钟前
LeetCode--383.赎金信(哈希表)
java·算法·leetcode·散列表
贺小涛41 分钟前
VictoriaMetrics深度解析
java·网络·数据库