代码随想录算法训练营第九天|151.翻转字符串里的单词 卡码网:55.右旋转字符串

news2024/11/15 20:01:45

LeetCode 151 翻转字符串里的单词

题目:

给你一个字符串 s ,请你反转字符串中 单词 的顺序。

单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。

返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。

注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。

示例 1:

输入:s = "the sky is blue"
输出:"blue is sky the"

示例 2:

输入:s = "  hello world  "
输出:"world hello"
解释:反转后的字符串中不能存在前导空格和尾随空格。

示例 3:

输入:s = "a good   example"
输出:"example good a"
解释:如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。

提示:

  • 1 <= s.length <= 104
  • s 包含英文大小写字母、数字和空格 ' '
  • s 中 至少存在一个 单词

思路:

首先,分析题目,我们会发现,题目只是让我们改变顺序输出单词,那么我们根据空格可以分离出单词。

接着我们会想到栈stack这种数据结构,它是先进后出,也就是说我们可以遍历string,将每个单词压入栈中,然后输出即可。

上代码:

class Solution {
public:
    string reverseWords(string s) {
        // 创建一个栈来存储单词
        stack<string> words;

        int n = s.size();

        // 遍历字符串,找到每个单词
        for (int i = 0; i < n; ++i) {
            string sub;

            // 当当前字符不是空格时,将其添加到子字符串中
            while (i < n && s[i] != ' ') {
                sub += s[i];
                ++i;
            }

            // 如果子字符串不为空,将其压入栈中
            if (sub != "")
                words.push(sub);
        }

        // 初始化结果字符串
        string ans;

        // 从栈顶开始构建结果字符串
        ans = words.top();

        words.pop();

        while (!words.empty()) {
            ans += " ";
            ans += words.top();
            words.pop();
        }
        return ans;
    }
};


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

题目:

字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。 

例如,对于输入字符串 "abcdefg" 和整数 2,函数应该将其转换为 "fgabcde"。

输入描述

输入共包含两行,第一行为一个正整数 k,代表右旋转的位数。第二行为字符串 s,代表需要旋转的字符串。

输出描述

输出共一行,为进行了右旋转操作后的字符串。

输入示例
2
abcdefg
输出示例
fgabcde
提示信息

数据范围:
1 <= k < 10000,
1 <= s.length < 10000;

思路:

这题好像可以直接拼接吧。。。

上代码:

string rightRotate(int k, string s) {
    int n = s.length();
    k = k % n; // 防止k大于字符串长度
    string result = s.substr(n - k) + s.substr(0, n - k);
    return result;
}

int main() {
    int n;
    string s;
    cin >> n;
    cin >> s;
    cout << rightRotate(n, s) << endl;
    return 0;
}

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

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

相关文章

超声波眼镜清洗机哪个品牌比较好用?四大高赞耐用单品全面测评

随着大家对健康卫生的关注不断提升&#xff0c;超声波清洗机逐渐受到佩戴眼镜人士的青睐。超声波清洗机是一种既方便又高效的智能清洁工具。它利用超声波技术&#xff0c;通过在眼镜表面产生高频振动&#xff0c;将污垢和油脂彻底分离&#xff0c;从而实现卓越的清洁效果。下面…

基于PSO-LSTM的多变量多特征数据分类预测

一、数据集 数据特征&#xff1a;12个多分类&#xff1a;4分类 二、PSO-LSTM网络 PSO-LSTM 网络是一种结合粒子群优化算法&#xff08;Particle Swarm Optimization, PSO&#xff09;和长短期记忆网络&#xff08;Long Short-Term Memory, LSTM&#xff09;的混合模型。它将 …

好领导都会用三招管好下属!

管不住人&#xff0c;你就当不好官&#xff0c;高明领导管人就靠这3大秘诀&#xff01; 秘诀一&#xff1a;敢于亮剑 身为领导&#xff0c;&#xff0c;有时候需要有勇气面对挑战和问题&#xff0c;勇于做出决策&#xff0c;拿出魄力&#xff0c;勇于亮剑&#xff0c;向一切宣…

【HarmonyOS NEXT星河版开发学习】小型测试案例11-购物车数字框

个人主页→VON 收录专栏→鸿蒙开发小型案例总结​​​​​ 基础语法部分会发布于github 和 gitee上面&#xff08;暂未发布&#xff09; 前言 经过一周的学习&#xff0c;我发现还是进行拆分讲解效果会比较好&#xff0c;因为鸿蒙和前端十分的相识。主要就是表达的方式不同罢了…

2024年高教社杯全国大学生数学建模竞赛报名第一次通知!建议收藏!预测类模型及应用场景汇总

对于数学建模而言,算法模型选的对,文章写的顺~其中预测类模型是数模中常用的模型之一,通过预测模型,我们可以对未来的趋势和事件进行合理推测。今天,数模0error给大家汇总一下预测类模型及其应用场景,供大家参考,小伙伴们码住! 2024年高教社杯全大学生数学建模竞赛通知…

docker学习初体验

docker学习初体验 docker是什么 docker 包括三个基本概念: 镜像&#xff08;Image&#xff09;&#xff1a;Docker 镜像&#xff08;Image&#xff09;&#xff0c;就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 roo…

四款口碑比较好充电宝排名,哪些性价比高?适合入手充电宝推荐

2024年快到下旬了&#xff0c;市场上的充电宝价格也是差不多都沉淀起来了。所以就性价比高的充电宝的入手时间来说&#xff0c;那确实是年底左右的时间挑选入手会比较好一点。而挑选性价比高的充电宝类型呢&#xff0c;那说充电宝&#xff0c;我个人其实也有入手过不少品牌的充…

晶体振荡器的频率容差与温度稳定性

晶体振荡器作为电子设备中不可或缺的频率源&#xff0c;其频率的准确性与稳定性至关重要。本文旨在阐述晶体振荡器的频率容差与温度稳定性的定义、测量单位及其在实际应用中的重要性。 一、频率容差定义及测量单位 频率容差是指晶体振荡器在特定条件下&#xff08;通常是25C的…

mysql 监控开始时间,结束时间,平均取n个时间点

需求 最近1小时 1分钟 60个点 最近3小时 5分钟 36个点 最近6小时 10分钟 36个点 最近12小时 20分钟 36个点 最近1天 1小时 24个点 最近3天 3小时 24个点 最近1周 6小时 28个点 如果你的递归查询支持递归CTE&#xff08;如MySQL 8.0&#xff09;&#xff0c;可以使用递归查询来…

[自学记录09*]关于模糊效果降采样优化性能的小实验

一、降采样在模糊中的优化 这两天接手了几个高度定制化的模糊&#xff0c;包括不限于放射和旋转状的径向模糊&#xff0c;移轴模糊&#xff0c;景深的散景模糊等等&#xff0c;这些效果在游戏中非常常见。 其实模糊的原理都差不多&#xff0c;无非就是对UV偏移后重新采样再求…

UI动画设计:提升用户体验的关键

传统的静态 UI 设计正在逐渐被淘汰&#xff0c;UI 动画设计正在脱颖而出。随着技术的成熟&#xff0c;UI 动画正试图超越现有的限制和规则&#xff0c;并通过应用程序形成、网站和其他产品的新互动模式。交互式动画也可以为 UI 设计增添活力&#xff0c;使用户界面更加丰富多彩…

【vue3|第20期】vue3中Vue Router路由器工作模式

日期&#xff1a;2024年8月6日 作者&#xff1a;Commas 签名&#xff1a;(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释&#xff1a;如果您觉得有所帮助&#xff0c;帮忙点个赞&#xff0c;也可以关注我&#xff0c;我们一起成长&#xff1b;如果有不对的地方&#xff…

ThreadLocal 详解(三)内存泄露原因,以及强弱引用

1、ThreadLocal内存泄漏 在Threadlocal的内部静态类中Entry将Threadlocal作为一个key&#xff0c;值作为value保存&#xff0c;他继承WeakReference&#xff0c;super(k)&#xff0c;代表了Threadlocal对象是一个弱引用&#xff1b; static class Entry extends WeakReference…

mysql中B+树的数据存储

B树索引基础分析 B树的定义 B树是一种自平衡的树形数据结构&#xff0c;常用于数据库和操作系统的索引结构。它具有以下特点&#xff1a; 所有数据都存储在叶子节点&#xff0c;非叶子节点仅存储键值和子节点的指针。 叶子节点之间通过指针相互连接&#xff0c;形成一个有序链…

机器视觉应用基础: 工业镜头

文章转载自机器视觉应用基础: 工业镜头-工业相机镜头选型-少有人走的路 (skcircle.com) 工业镜头相当于人眼的晶状体&#xff0c;如果没有晶状体&#xff0c;人眼看不到任何物体&#xff1b;如果没 有镜头&#xff0c;那么摄像头所输出的图像&#xff1b;就是白茫茫的一片&…

职场办公人必备网站-办公人导航

“办公人导航”是一个综合性的网址导航网站&#xff0c;专门收录和分享各种优质的办公资源和工具。它涵盖了常用网站、在线工具、资源查找、素材查找、在线学习、在线影视、资讯信息、AI工具集等内容&#xff0c;是一个职场办公人必备的网址导航网站。办公人导航-实用的办公生活…

XJTUSE-离散数学-集合

基本概念 集合的包含与相等&#xff0c;如子集幂集&#xff1a;以A的所有子集组成的集合称为A的幂集AB <> 集合的基本运算 基本运算证明会考 交运算并运算补运算差运算&#xff1a;A \ B 环和运算&#xff1a;环积运算&#xff1a; 集合的其他表示方法 文图表示法 …

反向传播与梯度累积

反向传播算法&#xff1a;loss.backward()的实现细节 向前传播&#xff1a;输入数据得到预测结果。向后传播&#xff1a;计算梯度加更新参数。反向传播&#xff1a;计算梯度 计算图 计算图 有向无环图 基本运算 节点&#xff1a;变量节点 & 计算节点有向边&#xff1…

AI赋能医疗:应用场景丰富,智慧医疗进入大趋势!

在《超越想象的 GPT 医疗》一书开篇中描绘了一个虚构场景&#xff1a;面对患者病情突然恶化&#xff0c;医学住院实习生克里斯腾陈通过和 GPT-4 对话&#xff0c;完成了对患者的救治、得到了心理安慰、并为患者向保险公司申请了授权&#xff0c;后续在查房中&#xff0c;还为肿…

【MySQL】数据基本的增删改查操作

新增数据&#xff08;Create&#xff09; 在MySQL中&#xff0c;增加数据的操作主要使用 INSERT 语句。下面我们将分为两部分&#xff1a;单行数据插入和多行数据插入。 一、单行数据插入 全列插入&#xff1a; 当你要插入一行数据到表中并且要提供所有列的值时&#xff0c;可…