力扣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();
      }
  };
相关推荐
py有趣2 分钟前
力扣热门100题之最小覆盖子串
算法·leetcode
汀、人工智能4 分钟前
[特殊字符] 第102课:添加与搜索单词
数据结构·算法·均值算法·前缀树·trie·添加与搜索单词
汀、人工智能8 分钟前
07 - 字典dict:哈希表的Python实现
数据结构·算法·数据库架构·哈希表的python实现
oG99bh7CK14 分钟前
高光谱成像基础(六)滤波匹配 MF
人工智能·算法·目标跟踪
汀、人工智能15 分钟前
04 - 控制流:if/for/while
数据结构·算法·链表·数据库架构··if/for/while
tHeya06II15 分钟前
涵盖 Cursor、Claude Code、Skills
java·服务器
kim_puppy17 分钟前
TCP的三次握手,四次挥手
java·网络·tcp
诗人不写诗17 分钟前
spring boot apm生态
java·数据库·spring boot
海参崴-18 分钟前
C++代码格式规范
java·前端·c++
努力学习的小廉35 分钟前
我爱学算法之——动态规划(四)
算法·动态规划