力扣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();
      }
  };
相关推荐
用户9083246027313 小时前
Spring AI 1.1.2 集成 MCP(Model Context Protocol)实战:以 Tavily 搜索为例
java·后端
罗超驿13 小时前
JavaSE高频答疑:内部类同名变量访问全解 + Comparable与Comparator核心区别
java·开发语言·idea
yyy(十一月限定版)13 小时前
图论——最小生成树Kruskal算法
算法·图论
宇木灵13 小时前
C语言基础-十一、递归与分治(完结)
c语言·开发语言·学习·算法
We་ct13 小时前
LeetCode 173. 二叉搜索树迭代器:BSTIterator类 实现与解析
前端·算法·leetcode·typescript
weixin_3954489113 小时前
main.c_0222cursor
c语言·前端·算法
夕除14 小时前
js--23
java
无尽的沉默14 小时前
Thymeleaf 表达式
java·开发语言·前端
无尽的沉默14 小时前
Spring Boot 整合 Thymeleaf 模板引擎
java·前端·spring boot
Zik----14 小时前
Leetcode27 —— 移除元素(双指针)
数据结构·算法