随想录二刷Day09——字符串
文章目录
- 字符串
- 1. 反转字符串
- 2. 反转字符串 II
- 3. 替换空格
- 4. 反转字符串中的单词
- 5. 左旋转字符串
字符串
1. 反转字符串
344. 反转字符串
思路:
设置两个指针,分别指向字符串首尾,两指针向中间移动,内容交换。
class Solution {
public:void reverseString(vector<char>& s) {int s_len = s.size();int left = 0, right = s_len - 1;char temp;while (left < right) {temp = s[left];s[left++] = s[right];s[right--] = temp;}}
};
2. 反转字符串 II
541. 反转字符串 II
思路:
将每 2k 的前 k 个进行反转。
每 k 个一判断,如果最后不足 k 个,判断是前一个 k (奇数个),还是后一个 k (偶数个):
- 奇数个 k,则将其剩余部分反转
- 偶数个 k,其前 k 个已经反转过了,不用再次反转
class Solution {
private:void myReverse(string &s, int left, int right) {right--;while (left < right) {swap(s[left++], s[right--]);}}public:string reverseStr(string s, int k) {int s_len = s.length();int i = 0;for (i = 0; i < s_len; i += k) {if ((i / k) & 1) {myReverse(s, i - k, i);}}if ((i / k) & 1) { // 剩余部分处理myReverse(s, i - k, s_len);}return s;}
};
3. 替换空格
剑指 Offer 05. 替换空格
思路:
- 统计字符串中空格的数目
- 将字符串的长度扩展为
原来长度 + 2 * 空格数- 定义两个指针分别从新旧字符串的结尾位置向字符串开头遍历,如果遇到空格,则新数组从后往前填入
02%,否则直接将旧字符串指针处的值填到新字符串指针所在位置即可- 指针前移至下标为 0。
class Solution {
public:string replaceSpace(string s) {int s_len = s.length();int space_num = 0;for (int i = 0; i < s_len; i++) {if (s[i] == ' ') space_num++;}int new_s_len = s_len + space_num * 2;s.resize(new_s_len);int i = s_len, j = new_s_len;while (i >= 0) {if (s[i] != ' ') {s[j--] = s[i--];} else {s[j--] = '0';s[j--] = '2';s[j--] = '%';i--;}}return s;}
};
4. 反转字符串中的单词
151. 反转字符串中的单词
思路:
0. 把字符串间多余的空格去掉
- 将字符串中的每个单词反转
- 将整个字符串反转
class Solution {
private:void myReverse(string &s, int left, int right) {while (left < right) {swap(s[left], s[right]);left++;right--;}}public:string reverseWords(string s) {int s_len = s.length();int new_s_len = 0;// 处理多余的空格for (int i = 0; i < s_len; i++) {if (i == 0 && s[i] == ' ') continue;if ((s[i] == ' ' && s[i - 1] == ' ') || (s[i] == ' ' && i == s_len - 1)) continue;else {s[new_s_len++] = s[i];}}while (s[new_s_len - 1] == ' ') new_s_len--; // 把末尾空格去掉s.resize(new_s_len);// 反转每个单词int start_pos = 0;for (int i = 0; i < new_s_len; i++) {if (i == 0 || s[i - 1] == ' ') start_pos = i;if (s[i] == ' ') myReverse(s, start_pos, i - 1);}myReverse(s, start_pos, new_s_len - 1); // 反转最后一个单词// 反转整个字符串myReverse(s, 0, new_s_len - 1);return s;}
};
5. 左旋转字符串
剑指 Offer 58 - II. 左旋转字符串
思路:
本来还想模拟一下,需要整个字符串调整 k 次,看完卡哥的解法,直呼妙不可言!!!
- 反转前 n 个字符
- 反转后 n 个字符
- 反转整个字符
class Solution {
public:string reverseLeftWords(string s, int n) {reverse(s.begin(), s.begin() + n);reverse(s.begin() + n, s.end());reverse(s.begin(), s.end());return s;}
};
相关文章:
随想录二刷Day09——字符串
文章目录字符串1. 反转字符串2. 反转字符串 II3. 替换空格4. 反转字符串中的单词5. 左旋转字符串字符串 1. 反转字符串 344. 反转字符串 思路: 设置两个指针,分别指向字符串首尾,两指针向中间移动,内容交换。 class Solution { …...
正点原子IMX6ULL开发板-liunx内核移植例程-uboot卡在Starting kernel...问题
环境 虚拟机与Linux版本: VMware 17.0.0 Ubuntu16 NXP提供的U-boot与Linux版本: u-boot:uboot-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2 linux:linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2 开发板: 正点原子-IMX6ULL_EMMC版本,底板版…...
使用手工特征提升模型性能
本文将使用信用违约数据集介绍手工特征的概念和创建过程。 通过对原始数据进行手工的特征工程,我们可以将模型的准确性和性能提升到新的水平,为更精确的预测和更明智的业务决策铺平道路, 可以以前所未有的方式优化模型并提升业务能力。 原始…...
【运维有小邓】Oracle数据库审计
一些机构通常将客户记录、信用卡信息、财务明细之类的机密业务数据存储在Oracle数据库服务器中。这些数据存储库经常因为内部安全漏洞和外部安全漏洞而受到攻击。对这类敏感数据的任何损害都可能严重降低客户对机构的信任。因此,数据库安全性对于任何IT管理员来说都…...
JDK下载安装与环境
🥲 🥸 🤌 🫀 🫁 🥷 🐻❄️🦤 🪶 🦭 🪲 🪳 🪰 🪱 🪴 🫐 🫒 🫑…...
FPGA纯verilog代码实现4路视频缩放拼接 提供工程源码和技术支持
目录1、前言2、目前主流的FPGA图像缩放方案3、目前主流的FPGA视频拼接方案4、本设计方案的优越性5、详细设计方案解读HDMI输入图像缩放图像缓存VGA时序HDMI输出6、vivado工程详解7、上板调试验证8、福利:工程源码获取1、前言 本文详细描述了FPGA纯verilog代码实现4…...
Spark on YARN运行过程,YARN-Client和YARN-Cluster
Spark on YARN运行过程 YARN是一种统一资源管理机制,在其上面可以运行多套计算框架。目前的大数据技术世界,大多数公司除了使用Spark来进行数据计算,由于历史原因或者单方面业务处理的性能考虑而使用着其他的计算框架,比如MapRed…...
NLP中一些工具列举
文章目录StanfordcoreNLPStanzaTankitspaCySuPar总结StanfordcoreNLP 这个老早就出来了,用java写的,但是已经有很多比他效果好的了。 Stanza 2020ACL发表的,看名字就知道和上一个是同一家的。 用已经切好词的句子进行依存分析。 这个功能…...
面试官:给你一段有问题的SQL,如何优化?
大家好,我是飘渺!我在面试的时候很喜欢问候选人这样一个问题:“你在项目中遇到过慢查询问题吗?你是怎么做SQL优化的?”很多时候,候选人会直接跟我说他们在编写SQL时会遵循的一些常用技巧,比如&a…...
嵌入式 Linux 文件IO操作
目录 Linux 文件操作 1 Linux 系统环境文件操作概念 2 缓冲 IO 文件操作 1 文件的创建,打开与关闭 fopen 函数函数 2 freopen 函数 3、fdopen函数 4、fclose函数 5、格式化读写 6、单个字符读写 7、文件定位 8、标准目录文件 9、非缓冲IO文件操作 Linux 文…...
植物大战 二叉搜索树——C++
这里是目录标题二叉排序树的概念模拟二叉搜索树定义节点类insert非递归Finderase(重点)析构函数拷贝构造(深拷贝)赋值构造递归FindRInsertR二叉搜索树的应用k模型KV模型二叉排序树的概念 单纯的二叉树存储数据没有太大的作用。 搜索二叉树作用很大。 搜索二叉树的一般都是用…...
[MatLab]矩阵运算和程序结构
一、矩阵 1.定义 矩阵以[ ]包含,以空格表示数据分隔,以;表示换行。 A [1 2 3 4 5 6] B 1:2:9 %1-9中的数,中间是步长(不能缺省) C repmat(B,3,2) %将B横向重复2次,纵向重复2次 D ones(2,4) …...
【Leedcode】栈和队列必备的面试题(第四期)
【Leedcode】栈和队列必备的面试题(第四期) 文章目录【Leedcode】栈和队列必备的面试题(第四期)一、题目二、思路图解1.声明结构体2.循环链表开辟动态结构体空间3.向循环队列插入一个元素4.循环队列中删除一个元素5. 从队首获取元…...
Windows Server 2016搭建文件服务器
1:进入系统在服务器管理器仪表盘中添加角色和功能。 2:下一步。 3:继续下一步。 4:下一步。 5:勾选Web服务器(IIS) 6:添加功能。 7:下一步。 8:下一步。 9:下一步。 10&a…...
零基础学SQL(十一、视图)
目录 前置建表 一、什么是视图 二、为什么使用视图 三、视图的规则和限制 四、视图的增删改查 五、视图数据的更新 前置建表 CREATE TABLE student (id int NOT NULL AUTO_INCREMENT COMMENT 主键,code varchar(255) NOT NULL COMMENT 学号,name varchar(255) DEFAULT NUL…...
web,h5海康视频接入监控视频流记录三(后台node取流)
前端vue,接入ws视频播放 云台控制 ,回放预览,都是需要调对应的海康接口。相当于,点击时,请求后台写好的接口,接口再去请求海康的接口 调用云台控制是,操作一次,不会自己停止&#x…...
网络安全从入门到精通:30天速成教程到底有多狠?你能坚持下来么?
毫无疑问,网络安全是当下最具潜力的编程方向之一。对于许多未曾涉足计算机编程的领域「小白」来说,深入地掌握网络安全看似是一件十分困难的事。至于一个月能不能学会网络安全,这个要看个人,对于时间管理不是很高的,肯…...
世界上最流行的编程语言,用户数超过Python,Java,JavaScript,C的总和!
世界上最流行的编程语言是什么? Python? Java? JavaScript? C?都不是,是Excel!外媒估计,全球有12亿人使用微软的Office套件,其中估计有7.5亿人使用Excel!可是Excel不就是能写点儿公式&#x…...
杂谈:created中两次数据修改,会触发几次页面更新?
面试题:created生命周期中两次修改数据,会触发几次页面更新? 一、同步的 先举个简单的同步的例子: new Vue({el: "#app",template: <div><div>{{count}}</div></div>,data() {return {count…...
原生JS实现拖拽排序
拖拽(这两个字看了几遍已经不认识了) 说到拖拽,应用场景不可谓不多。无论是打开电脑还是手机,第一眼望去的界面都是可拖拽的,靠拖拽实现APP或者应用的重新布局,或者拖拽文件进行操作文件。 先看效果图&am…...
js06----流程控制
目录 2.4.1、顺序流程控制 2.4.2、分支流程控制 (1)if分支语句(条件判断语句) (2)if....else...语句 需求1: 需求2: (3)if...else if...else语句&…...
抖音高效采集与无水印提取工具使用指南
抖音高效采集与无水印提取工具使用指南 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 在数字内容创作与研究领域,高效的抖音资源管理已成为提升工作流的关键环节。本文将全面介绍一款功能强大的…...
从音乐均衡器到语音降噪:深入浅出玩转数字谐振器设计与MATLAB仿真
从音乐均衡器到语音降噪:深入浅出玩转数字谐振器设计与MATLAB仿真 你是否曾在调整音乐播放器的均衡器时好奇——那些滑动条如何精确控制特定频段的声音强弱?这背后隐藏的数字信号处理魔法,正是我们今天要探索的数字谐振器技术。无论是提取语音…...
多租户下的系统基础表设计
多租户下的系统基础表设计在设计 多租户进销存系统(SaaS) 时,核心是 租户隔离 权限控制 组织结构。 一般推荐的设计是 “租户 → 机构 → 角色 → 用户” 的层级结构,同时所有业务数据都带 tenant_id。租户表(Tenant…...
nli-distilroberta-base环境部署:Docker容器内Python依赖与模型权重加载验证
nli-distilroberta-base环境部署:Docker容器内Python依赖与模型权重加载验证 1. 项目概述 nli-distilroberta-base是一个基于DistilRoBERTa模型的自然语言推理(NLI)Web服务。它能智能分析两个句子之间的关系,判断它们之间的逻辑关联。这项技术在智能客…...
Photoshop PS 2026 保姆级图文安装教程
前言 在当今数字创意领域,Photoshop作为行业标准的图像处理软件,掌握它的安装与使用已成为设计师、摄影师及创意工作者的必备技能。本文为您提供Photoshop 2026最新版本的详细安装指南,无论您是初学者还是需要更新软件的专业人士,…...
AI赋能安装流程:快马智能诊断工具,自动解决软件安装兼容性问题
在开发软件的过程中,安装环节往往是第一个拦路虎。特别是当遇到系统环境复杂、依赖库版本冲突、权限配置等问题时,传统的安装方式常常让人头疼不已。最近我在尝试开发一个智能安装问题诊断工具时,发现InsCode(快马)平台的AI辅助功能特别实用&…...
Ubuntu 22.04 换源+Docker安装+镜像加速
Ubuntu 22.04 换源Docker安装镜像加速 前言 本文针对 Ubuntu 22.04 LTS 系统,先更换国内镜像源提升下载速度,再完成 Docker 引擎与 Compose 插件安装,最后配置 Docker 国内镜像加速,全程无报错、可直接复制执行,适配 V…...
5步征服显存难题:多语言MiniLM模型量化优化实战指南
5步征服显存难题:多语言MiniLM模型量化优化实战指南 【免费下载链接】paraphrase-multilingual-MiniLM-L12-v2 项目地址: https://ai.gitcode.com/hf_mirrors/ai-gitcode/paraphrase-multilingual-MiniLM-L12-v2 1. 诊断显存瓶颈 在部署paraphrase-multili…...
VOOHU 沃虎电子 千兆PoE+集成式RJ45连接器 SYT411Q199DB2A1DP 内置网络变压器 支持720mA供电 适用于PoE交换机与无线AP
苏州沃虎电子科技有限公司(品牌:VOOHU)供应的 SYT411Q199DB2A1DP 是一款高性能千兆集成式RJ45连接器,内置符合IEEE 802.3at标准的网络变压器,支持PoE(高达720mA)供电。该产品采用90侧插DIP封装&…...
