力扣2296.设计一个文本编辑器

news2024/9/22 4:03:08

力扣2296.设计一个文本编辑器

  • 对顶栈

  • 在这里插入图片描述

    • 将光标看作左右栈的分隔
    • 添加元素:往左栈添加元素
    • 删除元素:从左栈删除元素
    • 光标左(右)移:左(右)栈元素加到右(左)栈
  •   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();
          }
      };
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1930438.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

理兔chat开发日记

1.注册 注册跟以前的差不多,我们将我们的验证码放在redis下,我们在注册的时候先判断我们输入的验证码是否正确 验证码成功后在我们的实现类中,我们先判断邮箱是否重复,不重复我们就继续注册 我们拥有联号注册的功能,就…

OpenCV 棋盘格相机标定(保姆版)

目录 一、概述 1.1标定原理 1.2实现步骤 1.3应用场景 二、代码 2.1 cv2.calibrateCamera函数 2.1.1输入参数 2.1.2输出参数 2.2完整代码 三、实现效果 3.1处理图像 3.2内参与畸变系数 一、概述 使用 OpenCV 进行相机标定,通常需要拍摄多张包含棋盘格标定…

手机照片怎么改大小kb?3个压缩方法分享

手机照片怎么改大小kb?手机照片调整大小(KB)不仅是管理存储空间的实用技巧,也是适应多样化分享场景的关键。掌握调整照片大小的方法,能确保图片顺畅上传,同时保持清晰度和加载速度,提升用户体验…

Why can‘t I access GPT-4 models via API, although GPT-3.5 models work?

题意:为什么我无法通过API访问GPT-4模型,尽管GPT-3.5模型可以工作? 问题背景: Im able to use the gpt-3.5-turbo-0301 model to access the ChatGPT API, but not any of the gpt-4 models. Here is the code I am using to tes…

Linux中LVS群集应用基础—NAT模式—LVS+Apache+NFS

🏡作者主页:点击! 🐧Linux基础知识(初学):点击! 🐧Linux高级管理专栏:点击! 🔐Linux中firewalld防火墙:点击! ⏰️创作时间&…

ctfshow-web入门-php特性(web123、web125、web126)

目录 1、web123 2、web125 3、web126 1、web123 要求存在 post 传入 CTF_SHOW 和 CTF_SHOW.COM,不能存在 get 传入 fl0g。 正则匹配过滤掉了一些符号,符合则会执行 eval 函数,其中 c 来自 post 传入的 fun。 我们先说非预期解&#xff0c…

Windows搭建RTMP视频流服务器

参考了一篇文章,见文末。 博客中nginx下载地址失效,附上一个有效的地址: Index of /download/ 另外,在搭建过程中,遇到的问题总结如下: 1 两个压缩包下载解压并重命名后,需要 将nginx-rtmp…

【Linux】进程信号 --- 信号预备阶段(入门篇)

👦个人主页:Weraphael ✍🏻作者简介:目前正在学习c和算法 ✈️专栏:Linux 🐋 希望大家多多支持,咱一起进步!😁 如果文章有啥瑕疵,希望大佬指点一二 如果文章对…

PIC单片机ICSP接口电路原理图

ICSP接口电路只有五根线,依次为: VPP、VDD、VSS、PGD、PGC,它们与PIC单片机的连接如下图: 题外话单片机中的佼佼者是谁,想知道点击上方图片查看视频 为保证ICSP安全正常工作,烧写时序线PGD和PGC、烧写电压…

C语言 | Leetcode C语言题解之第237题删除链表中的节点

题目: 题解: /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/void deleteNode(struct ListNode* node) {struct ListNode * p node->next;int temp;temp node->val;node->val…

深度学习驱动智能超材料设计与应用

在深度学习与超材料融合的背景下,不仅提高了设计的效率和质量,还为实现定制化和精准化的治疗提供了可能,展现了在材料科学领域的巨大潜力。深度学习可以帮助实现超材料结构参数的优化、电磁响应的预测、拓扑结构的自动设计、相位的预测及结构…

线程控制

对线程的控制思路和进程相似,创建、等待、终止,只需要调用接口就行。但是在Linux下没有线程的概念,因为Linux的设计者认为,线程是一种轻量级的进程,毕竟创建线程只需要创建PCB。因此Linux中使用多线程必须使用第三方pt…

打破平台限制,使智能手机和平板电脑上无缝运行Windows x86/x64架构的软件和游戏的一款安卓应用

大家好,今天给大家分享一款专为Android设备设计的模拟器应用Winlator。其核心功能是能够在基于ARM架构的智能手机和平板电脑上无缝运行Windows x86/x64架构的软件和游戏。 Winlator是一款Android应用程序,它允许用户使用Wine和Box86/Box64在Android设备上…

Ubuntu的磁盘扩容遇到的问题

1.先用终端上的命令查看磁盘的使用情况 #查看磁盘空间容量的占用情况 $ df -h #查看当前文件夹中,各个文件占用磁盘空间的情况 $ du -sh* 如果容量少的话,需要尽快扩容 2.开机前的扩容 2.1 VMware 扩展磁盘空间 关闭当前客户机,在编辑虚拟…

《企业实战分享 · Druid 连接监控》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 近期刚转战 CSDN,会严格把控文章质量,绝不滥竽充数,如需交流&#xff…

华为以客户为中心的战略

2005年,伴随着国际化步伐的加快,华为重新梳理了自己的愿景、使命和发展战略,提出了以客户为中心的战略定位: 为客户服务是华为存在的唯一理由;客户需求是华为发展的原动力。质量好、服务好、运作成本低,优…

部署kafkamanager

1,检查kafka的版本 到lib下查看 libs/kafka-clients-0.11.0.3.jar kafka的版本 0.11 2,下载kafkamanager 链接: https://pan.baidu.com/s/1qYifoa4 密码:el4o 3,解压后更改该conf下conf/application.conf 中zkhosts …

VUE:跨域配置代理服务器

//在vite.config。js中,同插件配置同级进行配置server:{proxy:{"/myrequest":{//代理域名,可自行修改target:"https://m.wzj.com/",//访问服务器的目标域名changeOrigin:true,//允许跨域configure:(proxy,options) > {proxy.on(&…

Ubuntu上安装配置samba服务

Ubuntu上安装配置samba服务 在Ubuntu中安装配置samba共享服务,可以让你在网络上共享文件和打印机。以下是一个相对详细的步骤指南,介绍如何在Ubuntu上安装和配置Samba。 1. 安装Samba 首先,需要安装Samba软件包。打开终端并运行以下命令&a…

【学习笔记】无人机系统(UAS)的连接、识别和跟踪(一)-3GPP TS 23.256 技术规范概述

3GPP TS 23.256 技术规范,主要定义了3GPP系统对无人机(UAV)的连接性、身份识别、跟踪及A2X(Aircraft-to-Everything)服务的支持。 3GPP TS 23.256 技术规范: 以下是文档的核心内容总结: UAV系…