力扣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();
      }
  };
相关推荐
随意起个昵称几秒前
线性dp-LIS题目4(A Twisty Movement)
算法·动态规划
Felven11 分钟前
B. Fair Numbers
数据结构·算法
人道领域15 分钟前
【LeetCode刷题日记】93.复原IP地址
java·开发语言·算法·leetcode
jarreyer23 分钟前
【算法记录1】模型训练问题
算法
Felven25 分钟前
D. Friends and the Restaurant
算法
摇滚侠28 分钟前
JavaWeb 全套教程 Listener 112-113
java·开发语言·servlet·tomcat·intellij-idea
想吃火锅100528 分钟前
【leetcode】165.比较版本号js
javascript·算法·leetcode
San813_LDD33 分钟前
[量化]《浮点数比较的艺术:从内存布局到极致性能优化》
网络·算法
ysu_031436 分钟前
leetcode数据结构与算法1~4
c语言·数据结构·学习·算法·leetcode
小欣加油38 分钟前
leetcode2574 左右元素和的差值
数据结构·c++·算法·leetcode·职场和发展