力扣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();
      }
  };
相关推荐
RingWu3 分钟前
高并发三板斧-缓存:命中率、一致性、治理
java·spring·缓存
此生决int3 分钟前
算法从入门到精通——滑动窗口
c++·算法·蓝桥杯
兩尛5 分钟前
std::shared_mutex、std::mutex和std::recursive_mutex是什么锁
开发语言·c++·算法
流年如夢7 分钟前
类和对象(上)
android·java·开发语言
huipeng92611 分钟前
基于SpringCloud的博客系统
java·运维·后端·spring·spring cloud·微服务
@SmartSi21 分钟前
AgentScope Java 入门:搭建第一个 ReAct 智能体
java·agentscope
小坏讲微服务24 分钟前
SpringBoot整合SpringAI配置多平台API密钥
java·人工智能·spring boot·后端·flask·ai编程·claude code
:12127 分钟前
java面试
java·开发语言·面试
ZC跨境爬虫27 分钟前
跟着 MDN 学 HTML day_62:(HTML调试与常见错误修复指南)
java·前端·javascript·ui·html·媒体
霸道流氓气质29 分钟前
Spring AI + Ollama 深度实战:从 RAG 问答到 Graph Agent 全流程指南
java·人工智能·spring