力扣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();
      }
  };
相关推荐
bubiyoushang8881 分钟前
MATLAB比较SLM、PTS和Clipping三种算法对OFDM系统PAPR的抑制效果
数据结构·算法·matlab
cg50178 分钟前
力扣数据库——组合两个表
sql·算法·leetcode
六边形战士DONK9 分钟前
[强化学习杂记] 从数学角度理解贝尔曼最优公式为什么是greedy?
算法
爆更小哇16 分钟前
Selenium自动化测试函数全解析(二)
java·selenium·测试工具·自动化
C雨后彩虹16 分钟前
计算误码率
java·数据结构·算法·华为·面试
fanruitian20 分钟前
Springboot项目父子工程
java·数据库·spring boot
小肖爱笑不爱笑24 分钟前
SpringBoot Web
java·http协议·分层解耦·web后端
柒.梧.27 分钟前
Spring核心知识全解析:从入门实战到进阶
java·后端·spring
乌日尼乐30 分钟前
【Java基础整理】Java字符串处理,String、StringBuffer、StringBuilder
java·后端
2501_9417987337 分钟前
面向微服务分布式事务补偿与最终一致性的互联网系统高可用设计与多语言工程实践分享
leetcode·模拟退火算法