当前位置: 首页 > news >正文

字符串day8

151 反转字符串中的单词

三个步骤
1、清除掉所有额外的空格,使用快慢指针方法
2、反转一整个字符串
3、根据空格,将空格之间的单词再反转

class Solution{
public:void reverse(string& s,int start,int end){  //倒序start和end之间闭区间的字符串for (int i=start,j=end;i<j;i++,j--){swap(s[i],s[j]);}}void removeExtraSpaces(string& s){//去除全部空格,在单词之间加上空格,使用快慢指针法int slow=0;for(int i=0;i<s.size();++i){if(s[i]!=' '){//快指针遇到非空格,也就是说遇到单词了if(slow!=0)s[slow++]=' ';//slow!=0说明不是首单词,需要加上一个空格,如果开头有空格那么并不需要处理while(i<s.size()&&s[i]!=' '){  //快慢指针,将slow的位置复制上fast的字符,直到空格为止s[slow++] = s[i++];}}}s.resize(slow); //截断(包括resize)}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;}
};

右旋字符串

思路就是 通过 整体倒叙,把两段子串顺序颠倒,两个段子串里的的字符在倒叙一把,负负得正,

#include<iostream>
#include<algorithm>
using namespace std;
int main() {int n;string s;cin >> n;cin >> s;int len = s.size(); //获取长度reverse(s.begin(), s.end()); // 整体反转reverse(s.begin(), s.begin() + n); // 先反转前一段,长度nreverse(s.begin() + n, s.end()); // 再反转后一段cout << s << endl;}

28 实现strStr()

重点,需要理解KMP算法

相关文章:

  • Python 如何让自动驾驶的“眼睛”和“大脑”真正融合?——传感器数据融合的关键技术解析
  • 弧度 = 弧长与半径的比值
  • Linux系统之cal命令的基本使用
  • QT6 关于使用MSVC2019,UI设计师自定义控件的制作和QT Cretor里面调用
  • 多模态简介
  • QTest应用迷城
  • 命象架构法 02|你的系统有“用神”吗?
  • Opera Neon发布该公司首款“AI代理”浏览器
  • 蛋白质研究用蛋白酶购买渠道推荐
  • 智汇云舟携最新无人机2D地图快速重建技术亮相广西国际矿业展览会
  • Java+POI+EXCEL导出柱形图(多列和单列柱形图)
  • 极坐标下 微小扇环 面积微元
  • 虚拟与现实时空认知同步的核心指标
  • 鸿蒙完整项目-仿盒马App(一)首页静态页面
  • GoldenDB管理节点zk部署
  • 华南版权服务大厅启用:富唯智能携具身智能人形机器人亮相,赋能版权产业生态革新
  • 数据库如何优化,尤其是历史温度数据计算品均值,实现小时,天,月的查询计算
  • 嵌入式学习Day30
  • mysql 索引失效有哪些
  • Server 9 ,在 VMware 虚拟机上安装 Windows 系统完整指南
  • 做外国网用哪些网站/网络推广工作好吗
  • 做独立网站电商需要办营业执照吗/安卓系统优化软件
  • 个体户做网站去哪里做/百度地图导航网页版
  • 如何防止别人攻击自己的网站/网络营销策略的内容
  • 网站建设 协议书 doc/宁波seo网络推广优化价格
  • wordpress主机安装/网站推广seo设置