算法随想录第八天打卡|344.反转字符串,541. 反转字符串II, 卡码网:54.替换数字, 151.翻转字符串里的单词,卡码网:55.右旋转字符串

344.反转字符串

建议: 本题是字符串基础题目,就是考察 reverse 函数的实现,同时也明确一下 平时刷题什么时候用 库函数,什么时候 不用库函数

题目链接/文章讲解/视频讲解:代码随想录

Python

class Solution:def reverseString(self, s: List[str]) -> None:left,right=0,len(s)-1while left<right:s[left],s[right]=s[right],s[left]left+=1right-=1return s

C++

class Solution {
public:void reverseString(vector<char>& s) {int left=0,right=s.size()-1;while (left<right){swap(s[left], s[right]);left++;right--;}}
};

541. 反转字符串II

建议:本题又进阶了,自己先去独立做一做,然后在看题解,对代码技巧会有很深的体会。

题目链接/文章讲解/视频讲解:代码随想录

Python

class Solution:def reverse(self,nums,left,right):if right>len(nums)-1:right=len(nums)-1while left<right:nums[left],nums[right]=nums[right],nums[left]left+=1right-=1def reverseStr(self, s: str, k: int) -> str:nums=list(s)trust=1for i in range(0,len(nums),k):if trust:self.reverse(nums,i,i+k-1)trust=0else:trust=1return ''.join(nums)

C++

class Solution {
public:vector<char>nums;vector<char> reverselist(vector<char>nums,int left,int right){if (right>nums.size()-1){right=nums.size()-1;}while (left<right){swap(nums[left],nums[right]);left+=1;right-=1;}return nums;}string reverseStr(string s, int k) {bool trust=1;for (int i=0;i<s.size();i++)nums.push_back(s[i]);for (int i=0;i<nums.size();i+=k){if (trust){nums=reverselist(nums,i,i+k-1);trust=0;}else{trust=1;}} string result;   for (int i=0;i<nums.size();i++){result+=nums[i];} return result;}
};

总结

这C++的数据结构变换真是麻烦呀。

卡码网:54.替换数字

建议:对于线性数据结构,填充或者删除,后序处理会高效的多。好好体会一下。

题目链接/文章讲解:代码随想录

Python

s=input()
nums=list(s)
for i in range(len(nums)):if abs(ord(nums[i])-ord("0"))<=10:nums[i]="number"
print("".join(nums))

C++

#include <iostream>
using namespace std;
int main() {string s;cin>>s;int left = s.size() - 1;int isdigit = 0;for (int i = 0; i < s.size(); i++) {if (s[i] >= '0' && s[i] <= '9') {isdigit++;}}s.resize(isdigit * 5 + s.size());int right = s.size() - 1;while (left >= 0) {if (s[left] >= '0' && s[left] <= '9') {s[right--] = 'r';s[right--] = 'e';s[right--] = 'b';s[right--] = 'm';s[right--] = 'u';s[right--] = 'n';}else {s[right--] = s[left];}left--;}cout << s << endl;
}

总结

C++可以修改字符串

151.翻转字符串里的单词

建议:这道题目基本把 刚刚做过的字符串操作 都覆盖了,不过就算知道解题思路,本题代码并不容易写,要多练一练。

题目链接/文章讲解/视频讲解:代码随想录

C++

class Solution {
public:void reverse(string& s,int left,int right){while (left<right){swap(s[left],s[right]);left++;right--;}}void removeExtraSpaces(string& s){int slow=0;for (int i=0;i<s.size();i++){if (s[i]!=' '){if (slow!=0)s[slow++]=' ';while (i<s.size() && s[i]!=' '){s[slow++]=s[i++];}}}s.resize(slow);}string reverseWords(string s) {removeExtraSpaces(s);reverse(s,0,s.size()-1);int start=0;for (int i=0;i<=s.size();i++){if (i==s.size() || s[i]==' '){reverse(s,start,i-1);start=i+1;}}return s;}
};

总结

一刷的时候直接split了,没想到实现起来这么难。

卡码网:55.右旋转字符串

建议:题解中的解法如果没接触过的话,应该会想不到

题目链接/文章讲解:

代码随想录

C++

#include <iostream>
using namespace std;
int main() {string s;int n;cin >> n >> s;string res = "";for (int i = s.size() - n; i < s.size(); i++) {res += s[i];}for (int i = 0; i < s.size() - n; i++) {res += s[i];}cout << res << endl;
}

总结

算了,就空间复杂度为n吧。

总结

之后还是都用C++吧,节约点时间

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

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

相关文章

海外云手机的运作原理和适用场景

海外云手机是一种基于云计算技术的虚拟手机服务&#xff0c;通过将手机操作系统和应用程序托管在远程服务器上&#xff0c;实现用户可以通过互联网连接来使用和管理手机功能&#xff0c;而无需实际拥有物理手机。以下是有关海外云手机的相关信息&#xff1a; 海外云手机的运作原…

202212青少年软件编程(Python)等级考试试卷(二级)

第 1 题 【单选题】 运行下列程序&#xff0c; 最终输出的结果是&#xff1f; &#xff08; &#xff09; info {1:小明, 2:小黄,3:小兰}info[4] 小红info[2] 小白print(info)A :{1: ’ 小明’ , 2: ’ 小白’ , 3: ’ 小红’ , 4: ’ 小兰’ } B :{1: ’ 小明’ , 2: ’…

VRP系统详解

VRP系统详解 一、VRP简介 VRP&#xff08;Versatile Routing Platform&#xff09;&#xff0c;即通用路由平台&#xff0c;是华为公司在通信领域多年研究经验的结晶。作为华为公司数据通信产品的通用操作系统平台&#xff0c;VRP不仅支撑了华为从低端到核心的全系列路由器、以…

如何利用命令提示符列出文件?这里提供了几个实例供你参考

序言 什么命令可以用来列出目录中的文件&#xff1f;如何在命令提示符Windows 10/11中列出文件&#xff1f;很多人对这些问题感到困惑。在这篇文章中&#xff0c;我们详细解释了命令提示符列出文件的主题。 CMD&#xff08;命令提示符&#xff09;是一个功能强大的Windows内置…

Keil问题解决:结构体数组初始化,初始化后的值不是目标值

省流&#xff1a;使用的编译器为compiler version 6&#xff0c;切换为compiler version 5 如果缺少编译器&#xff0c;请参考&#xff1a;Keil手动安装编译器V5版本 结构体定义&#xff1a; typedef struct _TASK_COMPONENTS {uint8_t Run; // 程序运行标…

头歌python共享单车6.4

您提到的“头歌python共享单车6.4”似乎是一个特定上下文中的术语或者是某个项目、课程、教程的名称。然而&#xff0c;没有足够的信息来确切地解释它的含义。如果这是一个编程项目、课程或者与共享单车相关的数据分析任务&#xff0c;以下是一些可能相关的建议&#xff1a; 共…

雍禾植发张东宏:以诚相待毛发患者

医学道路上的奋斗往往需要坚定的信念和不懈的努力。对于张东宏医生来说&#xff0c;医学并非止步于书本知识&#xff0c;而是一次次与患者对话、一次次实操中的历练和积累。在他的成长历程中&#xff0c;医学之路如同一棵参天大树&#xff0c;每一步都是扎实的打磨&#xff0c;…

STM32F407 2个高级定时器生成2路无刷电机波形以及相电流采集程序(寄存器版)

stm32f407 高级定时1、定时8 生成20k 中心PWM 波形 并分别用其通道4 触发ADC1 ADC2 采样 用于分别两无刷电机foc 电流环控制&#xff0c;ADC1产生50us的电流采集完成中断&#xff0c;用于foc算法周期运算 主要参考高级定时器的寄存器和ADC寄存器 首先&#xff0c;要使用STM32F…

代码复现|Demucs Music Source Separation

一、背景介绍 Demucs是一个开源的音源分离项目。 Demucs在算法层面前后经历了三次大版本的进化&#xff0c;最原始的V1版本是&#xff1a;编解码LSTM。具体算法原理图如下所示。该版本在时域进行音源分离。关于阅读笔记请点击这篇文章。 V1版本原理图 V2版本是同时使用时域和频…

2、快速搭建Vue框架以及项目工程

本篇文章详细讲解在配置完vue2环境后如何快速搭建一个Vue框架和项目工程。&#xff08;以智慧农业云平台为例&#xff09; 2.1 Vue工程创建 2.1.1创建想要存放的Vue文件夹 找到想要存放的文件夹并在目录搜索框中&#xff0c;并用管理员的方式打开。 2.1.2创建Vue工程 2、安装…

prompt工程策略(一:使用 CO-STAR 框架来搭建 prompt 的结构)

原文&#xff1a;我是如何赢得GPT-4提示工程大赛冠军的 原文的原文&#xff1a; How I Won Singapore’s GPT-4 Prompt Engineering Competition 为了让 LLM 给出最优响应&#xff0c;为 prompt 设置有效的结构至关重要。CO-STAR 框架是一种可以方便用于设计 prompt 结构的模板…

蓝桥杯备战24.危险系数——并查集

P8604 [蓝桥杯 2013 国 C] 危险系数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<bits/stdc.h> using namespace std; const int N 2e510; int x[N],y[N],p[N]; int n,m,st,ed; int find(int n) {if(p[n]!n){p[n]find(p[n]);}return p[n]; }bool check(in…

深入理解变分自编码器(VAE):机器学习中的生成模型

VAE 深入理解变分自编码器&#xff08;VAE&#xff09;&#xff1a;机器学习中的生成模型什么是变分自编码器&#xff08;VAE&#xff09;&#xff1f;**核心组件**&#xff1a; VAE的工作原理1. **编码器**2. **重参数化技巧**3. **解码器**4. **损失函数****关键内容**&#…

Uniapp基础面试

1. uni-app的优缺点 优点: a. 一套代码可以生成多端 b. 学习成本低,语法是vue的,组件是小程序的 c. 拓展能力强 d. 使用HBuilderX开发,支持vue语法 e. 突破了系统对H5条用原生能力的限制缺点: a. 问世时间短,很多地方不完善 b. 社区不大 c. 官方对问题的反馈不及时 d. 在And…

2024最新Kali Linux安装教程(非常详细)从零基础入门到精通(附安装包)!

什么是Kali Linux&#xff1f; Kali Linux是一个高级渗透测试和安全审计Linux发行版&#xff0c;其功能非常强大&#xff0c;能够进行信息取证、渗透测试、攻击WPA / WPA2保护的无线网络、离线破解哈希密码、将android、Java、C编写的程序反编译成代码等等&#xff0c;是黑客的…

Invalid bound statement (not found) 六种解决方法

前五种参考博文&#xff1a; Invalid bound statement (not found) 五种解决方法-CSDN博客 第六种&#xff1a; 在启动类上加上MapperScan&#xff0c;指定扫描包

css层叠样式表——基础css面试题

1、css样式来源有哪些&#xff1f; 內联样式-<a style"color:red"></a>内部样式-<style></style>外部样式-写在独立.css文件中的浏览器用户自定义样式浏览器默认样式 2、样式优先级问题 不同级别下&#xff1a; !important作为style属性…

【C++】list原理讲解及其实现

目录 一、认识list底层结构 二、list的构造类函数 三、迭代器 四、数据的访问 五、容量相关的函数 六、关于数据的增删查改操作 七、list和vector的比较 前言 要模拟实现list&#xff0c;必须要熟悉list的底层结构以及其接口的含义&#xff0c;在上一篇我们仔细讲解了list的…

网络学习(二)|网络标识符URI与URL的区别与联系

文章目录 URIURL区别与联系示例结论 在工作中&#xff0c;我们经常会听到URI和URL这两个术语&#xff0c;它们是网络中不可或缺的概念。尽管它们常常被混淆使用&#xff0c;但它们代表着不同的概念和角色。我们将深入探讨URI和URL&#xff0c;帮助彻底理解它们之间的区别和联系…

Gradio 案例——将 dicom 文件转为 nii文件

文章目录 Gradio 案例——将 dicom 文件转为 nii文件界面截图依赖安装项目目录结构代码 Gradio 案例——将 dicom 文件转为 nii文件 利用 SimpleITK 库&#xff0c;将 dicom 文件转为 nii文件更完整、丰富的示例项目见 GitHub - AlionSSS/dcm2niix-webui: The web UI for dcm2…