leetcode刷题:884、977

884.比较含退格的字符串

给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。

注意:如果对空文本输入退格字符,文本继续为空。

方法一、用栈

#include <iostream>
#include <stack>
#include <string>using namespace std;bool backspaceCompare(string s, string t) {stack<char> stack_s, stack_t;// Process string sfor (char c : s) {if (c != '#') {stack_s.push(c);} else if (!stack_s.empty()) {stack_s.pop();}}// Process string tfor (char c : t) {if (c != '#') {stack_t.push(c);} else if (!stack_t.empty()) {stack_t.pop();}}// Compare the resulting stringsstring result_s, result_t;while (!stack_s.empty()) {result_s += stack_s.top();stack_s.pop();}while (!stack_t.empty()) {result_t += stack_t.top();stack_t.pop();}return result_s == result_t;
}int main() {string s = "ab#c";string t = "ad#c";if (backspaceCompare(s, t)) {cout << "The strings are equal." << endl;} else {cout << "The strings are not equal." << endl;}return 0;
}

方法二、双指针

#include <iostream>
#include <string>using namespace std;bool backspaceCompare(string s, string t) {int i = s.size() - 1, j = t.size() - 1;int skipS = 0, skipT = 0;while (i >= 0 || j >= 0) {// Find position to compare in string swhile (i >= 0) {if (s[i] == '#') {skipS++;i--;} else if (skipS > 0) {skipS--;i--;} else {break;}}// Find position to compare in string twhile (j >= 0) {if (t[j] == '#') {skipT++;j--;} else if (skipT > 0) {skipT--;j--;} else {break;}}// Compare charactersif (i >= 0 && j >= 0 && s[i] != t[j]) {return false;}// Check if one string has reached its end while the other hasn'tif ((i >= 0) != (j >= 0)) {return false;}i--;j--;}return true;
}int main() {string s = "ab#c";string t = "ad#c";if (backspaceCompare(s, t)) {cout << "The strings are equal." << endl;} else {cout << "The strings are not equal." << endl;}return 0;
}

977.有序数组平方

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。

#include <iostream>
#include <vector>using namespace std;vector<int> sortedSquares(vector<int>& nums) {int n = nums.size();vector<int> result(n);int left = 0, right = n - 1;int index = n - 1; // Index to insert the largest squarewhile (left <= right) {int square_left = nums[left] * nums[left];int square_right = nums[right] * nums[right];if (square_left > square_right) {result[index--] = square_left;left++;} else {result[index--] = square_right;right--;}}return result;
}int main() {vector<int> nums = {-4, -1, 0, 3, 10};vector<int> result = sortedSquares(nums);cout << "Sorted squares: ";for (int num : result) {cout << num << " ";}cout << endl;return 0;
}

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

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

相关文章

8.MyBatis 操作数据库(进阶)

文章目录 1.动态SQL插入1.1使用注解方式插入数据1.2使用xml方式插入数据1.3何时用注解何时用xml&#xff1f;1.4使用SQL查询中有多个and时&#xff0c;如何自动去除多余and1.4.1方法一&#xff1a;删除and之后的代码如图所示&#xff0c;再次运行1.4.2方法二&#xff1a;加上tr…

Linux服务器上网络端口测试

在使用telnet 111.22.345.66 80在Linux主机上尝试连接目标IP地址111.22.345.66的80端口时&#xff0c;会看到以下四行返回信息的含义解释&#xff1a; Trying 111.22.345.66...&#xff1a; 这一行指示telnet正在尝试与IP地址为111.22.345.66的主机建立连接。这表明telnet正尝…

elasticsearch安装配置注意事项

安装Elasticsearch时&#xff0c;需要注意以下几个重要事项&#xff1a; 1、版本选择&#xff1a;选择与你系统和其他组件&#xff08;如Logstash、Kibana&#xff09;兼容的Elasticsearch版本。 2、Java环境&#xff1a;Elasticsearch是基于Java构建的&#xff0c;因此确保已…

书生·浦语大模型实战营之 OpenCompass大模型评测

书生浦语大模型实战营之 OpenCompass &#xff1a;是骡子是马&#xff0c;拉出来溜溜 为什么要研究大模型的评测&#xff1f; 百家争鸣&#xff0c;百花齐放。 首先&#xff0c;研究评测对于我们全面了解大型语言模型的优势和限制至关重要。尽管许多研究表明大型语言模型在多…

Linux cmake 初窥【2】

1.开发背景 基于上一篇的基础上&#xff0c;再次升级 2.开发需求 基于 cmake 指定源文件目录可以是多个文件夹&#xff0c;多层目录 3.开发环境 ubuntu 20.04 cmake-3.23.1 4.实现步骤 4.1 准备源码文件 工程目录如下 顶层脚本 compile.sh 负责执行 cmake 操作&#xff0…

FSC森林认证是什么?

FSC森林认证&#xff0c;又称木材认证&#xff0c;是一种运用市场机制来促进森林可持续经营&#xff0c;实现生态、社会和经济目标的工具。FSC森林认证包括森林经营认证&#xff08;Forest Management, FM&#xff09;和产销监管链认证&#xff08;Chain of Custody, COC&#…

微搭低代码入门06分页查询

目录 1 创建自定义代码2 编写分页代码3 创建页面4 创建变量5 配置数据列表总结 我们在数据模型章节介绍了微搭后端服务编写的三种方式&#xff0c;包括Http请求、自定义代码、云函数。本篇我们详细讲解一下利用自定义代码开发分页查询的功能。 1 创建自定义代码 打开控制台&am…

Qt——入门基础

目录 Qt入门第一个应用程序 main.cpp widget.h widget.cpp widget.ui .pro Hello World程序 对象树 编辑框 按钮 Qt 窗口坐标系 Qt入门第一个应用程序 main.cpp 这就像一开始学语言时都会打印一个“Hello World”一样&#xff0c;我们先来看看创建好一个项目后&…

LeetCode 难题解析 —— 正则表达式匹配 (动态规划)

10. 正则表达式匹配 思路解析 这道题虽然看起来不难理解&#xff0c;但却存在多种可能&#xff0c;当然这种可能的数量是有限的&#xff0c;且其规律对于每一次判别都使用&#xff0c;所以自然而然就想到用 动态规划 的方法啦 接下来逐步分析可能的情况&#xff1a; &#x…

栈(使用顺序表构建)

P. S.&#xff1a;以下代码均在VS2019环境下测试&#xff0c;不代表所有编译器均可通过。 P. S.&#xff1a;测试代码均未展示头文件stdio.h的声明&#xff0c;使用时请自行添加。 目录 1、栈的概念2、栈的数组构建方法2.1 前言2.2 正文2.2.1 栈的初始化2.2.2 栈的销毁2.2.3 压…

Jupyter notebook和 Jupyter lab内核死亡问题的原因和解决方案

写在前面&#xff1a;之前也遇到过几次内核死亡的问题&#xff0c;也一直没有想解决办法。这里总结一下并提出几个解决办法。 首先明确一下jupyter出现内核死亡的原因&#xff1a;jupyter lab 或者 jupyter notebook 本身是一个web服务&#xff0c; 无法支持高并发和频繁的计算…

栈与队列(包括例题一道)

栈 栈的概念 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。 进行数据插入和删除操作的一端 称为栈顶&#xff0c;另一端称为栈底。 栈中的数据元素遵守后进先出 LIFO &#xff08; Last In First Out &#xff09;的原则。 压栈&…

libevent 梳理

C10K 背景 C10K问题&#xff1a;如何在一台物理机上同时服务 10000 个用户&#xff1f;这里 C 表示并发&#xff0c;10K 等于 10000&#xff1f; C10K 问题本质上是一个操作系统问题&#xff0c;需要考虑&#xff1a; 1.文件句柄数&#xff1a;每个客户连接都代表一个文件描述…

AI去衣技术在动画制作中的应用

随着科技的发展&#xff0c;人工智能&#xff08;AI&#xff09;已经在各个领域中发挥了重要作用&#xff0c;其中包括动画制作。在动画制作中&#xff0c;AI去衣技术是一个重要的工具&#xff0c;它可以帮助动画师们更加高效地完成工作。 AI去衣技术是一种基于人工智能的图像…

人际关系之【镜子、点到为止、脸色和蔼、懂自爱、弹性、试探】

人跟人是镜子 别人看到你的表情&#xff0c;当作一面镜子 儒家&#xff1a;先检查自己&#xff0c;容易进步 礼尚往来&#xff1a;一切往好处想&#xff0c;就会有好的结果 关于借钱&#xff1a; 没问题&#xff0c;我随时&#xff08;合适&#xff09;要用 个人和团体合在…

神经网络怎么把隐含层变量融合到损失函数中?

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

【工具分享】Amnesia2勒索病毒解密工具

前言 Amnesia 勒索软件于 2017 年 4 月 26 日开始出现。Amnesia 主要通过 RDP&#xff08;远程桌面服务&#xff09;暴力攻击进行传播&#xff0c;允许恶意软件作者登录受害者的服务器并执行勒索行为。 特征 Amnesia 是一种用 Delphi 编程语言编写的勒索软件&#xff0c;它使…

Git撤回指定commit不保留更改

要撤销指定的commit但不保留这个commit中的更改&#xff0c;可以使用以下命令&#xff1a; git revert <commit_hash> --no-commit这里的<commit_hash>是你想要撤销的commit的哈希值。如果你想要在一个commit上使用这个命令&#xff0c;你可以用它的哈希值或者用H…

程序员的实用神器:助力软件开发的利器 ️

程序员的实用神器&#xff1a;助力软件开发的利器 &#x1f6e0;️ 程序员的实用神器&#xff1a;助力软件开发的利器 &#x1f6e0;️引言摘要自动化测试工具&#xff1a;保障代码质量的利剑 &#x1f5e1;️编写高效测试用例 持续集成/持续部署工具&#xff1a;加速交付的利器…

ASP.NET通用作业批改系统设计

摘  要 该系统采用B/S结构&#xff0c;以浏览器方式登陆系统&#xff0c;用ASP.NET作为开发语言&#xff0c;数据库则使用Microsoft SQL Server 2000实现。《通用作业批改系统》包括了学生子系统、教师子系统、管理员子系统三大模块&#xff0c;该系统主要完成学生&#xff…