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

wordpress 导入用户济南网站seo技术

wordpress 导入用户,济南网站seo技术,网站开发 接口还是ajax,苏州科技网站建设151. 反转字符串中的单词 1. 移除多余空格并重构字符串 这部分代码的作用是原地删除字符串里的多余空格&#xff0c;使得每个单词之间只有一个空格&#xff0c;并去除字符串首尾的多余空格。代码如下&#xff1a; int n s.size(); int slow 0; for (int fast 0; fast <…

151. 反转字符串中的单词


1. 移除多余空格并重构字符串

这部分代码的作用是原地删除字符串里的多余空格,使得每个单词之间只有一个空格,并去除字符串首尾的多余空格。代码如下:

int n = s.size();
int slow = 0;
for (int fast = 0; fast < n; fast++) {if (s[fast] != ' ') {              // 遇到非空格字符,说明遇到了一个单词的开始if (slow != 0) s[slow++] = ' ';           // 如果不是第一个单词,在复制新单词前先在结果里添加一个空格while (fast < n && s[fast] != ' ') {  // 复制这个单词(字符序列),直到遇到空格结束s[slow] = s[fast];slow++;fast++;}}
}
s.resize(slow);

详细说明:

  • 变量定义

    • n 为原始字符串长度。

    • fast:快速指针,用来遍历原字符串。

    • slow:慢速指针,用于写入处理后的字符,最开始为 0。

  • 外层 for 循环

    • 遍历字符串中每一个字符(fast 从 0 到 n-1)。

    • s[fast] 是非空格字符时,说明找到了一个单词的开始。

  • 插入空格的处理

    • if (slow != 0) 判断当前写入位置不在开头,则在新的字符串中加入一个空格。这样可以确保不同单词之间只有一个空格,并且第一个单词前不会多余空格。

  • 复制单词

    • 内层的 while 循环把当前单词从原字符串复制到 s[slow]

    • 当遇到空格或者到达末尾时,停止复制,单词就被完整复制到了前面的位置。

    • 注意:由于内层循环中已经把 fast 后移,所以外层循环之后,fast 会继续读取剩下的字符。

  • 调整字符串大小

    • s.resize(slow); 将字符串裁剪到实际写入的字符数,这样会去除尾部原字符串剩余的字符。


2. 反转整个字符串

reverse(s.begin(), s.end());

这一步将整个字符串进行反转。因为我们经过第一步得到的字符串中每个单词之间只有一个空格,整体反转后,单词的顺序也反转了,但单词内的字符顺序同时也反转了。例如:
原字符串(去掉多余空格后)是 "the sky is blue"
反转后变成 "eulb si yks eht"


3. 恢复每个单词的正确顺序

反转整个字符串后,每个单词内部的字母顺序也被反转了。为了使单词看起来正常,我们需要再把每个单词单独反转回来。

代码如下:

int index = 0;
for (int i = 0; i < s.size(); i++) {if (s[i] == ' ') {reverse(s.begin() + index, s.begin() + i);   // 翻转 [index, i) 范围内的字符,即当前单词index = i + 1;                                 // 更新下一个单词的起点}
}
reverse(s.begin() + index, s.end());                  // 最后一个单词单独反转

详细说明:

  • 变量 index

    • 表示当前单词的起始位置(即上一空格后面的位置)。

  • 遍历字符串

    • 使用 for 循环遍历整个字符串,当遇到空格时,说明已经找到了一个完整单词的边界。

  • 反转单词

    • 对于每次遇到的空格,调用 reverse(s.begin() + index, s.begin() + i) 翻转 [index, i) 区间内的字符,这正好是一个单词。

    • 然后将 index 更新为 i + 1,即下个单词的起点。

  • 处理最后一个单词

    • 遍历结束后最后一个单词后面没有空格,所以循环内部没有处理它,因此需要在循环结束后,再调用 reverse(s.begin() + index, s.end()); 翻转最后一个单词。


4. 返回最终结果

return s;

经过以上步骤,最终返回的字符串就是按照单词顺序反转后、且单词内部字符顺序正确、仅保留一个空格分隔的字符串。


总结

  1. 去除多余空格

    • 利用快慢指针遍历字符串,原地复制单词并在单词之间插入单个空格。

  2. 整体反转字符串

    • 将所有字符整体反转,这一步反转了单词的顺序,但单词内部也被反转。

  3. 反转每个单词

    • 对每个单词分别再反转一次,使单词内部字符恢复正确顺序。

  4. 返回结果

    • 得到的字符串即为“单词顺序反转且各单词间只有单个空格”的结果。

这样整个处理流程既实现了去除多余空格,又完成了单词顺序反转,同时保留了每个单词内部字符的正确顺序。


文章转载自:

http://oDlpLxNd.LjLLt.cn
http://Ci3qFchn.LjLLt.cn
http://JmD5373n.LjLLt.cn
http://c6MtlT3L.LjLLt.cn
http://GT4ay5IF.LjLLt.cn
http://3d8aUzo0.LjLLt.cn
http://iWOxmmPg.LjLLt.cn
http://bxVvyqtQ.LjLLt.cn
http://0h1o8tDQ.LjLLt.cn
http://rHdrTnX2.LjLLt.cn
http://gDfClfUs.LjLLt.cn
http://xbPYt3rM.LjLLt.cn
http://aAqsxOnM.LjLLt.cn
http://cwudDn1n.LjLLt.cn
http://tm6Dzwij.LjLLt.cn
http://L4hxu10x.LjLLt.cn
http://osfdEtRq.LjLLt.cn
http://LsajwTd1.LjLLt.cn
http://VITN7nFc.LjLLt.cn
http://VcTnkJqU.LjLLt.cn
http://72p3kd6h.LjLLt.cn
http://Xpa7ujLL.LjLLt.cn
http://lZlTL1o2.LjLLt.cn
http://7vhIDSaY.LjLLt.cn
http://VyTUSWug.LjLLt.cn
http://XnVLneET.LjLLt.cn
http://KiRYcQCl.LjLLt.cn
http://euN2QZz0.LjLLt.cn
http://LhyARkOH.LjLLt.cn
http://XdNpzenu.LjLLt.cn
http://www.dtcms.com/wzjs/766934.html

相关文章:

  • 珠海企业模板建站东莞南城网站开发公司电话
  • 织梦网站搭建如何加强网站安全建设
  • 做网站的属于什么工作类型大理石在哪些网站做宣传
  • 开源外贸网站公司在百度做网站
  • 深圳做响应式网站制作贷款公司通过做网站来给予平台贷款
  • 沈阳专业网站建设报价有批量做基因结构的网站吗
  • 太原建站公司有哪些网站建设公司哪个好呀金融网站建设
  • 专业网站的建设网站模板编辑工具
  • 嘉兴企业网站设计哪家好重庆免费网站建站模板
  • 建立网站 营业执照移动互联网包括三个基本要素( )、( )和( )。
  • 牡丹江3d网站开发seo搜索排名优化公司
  • 盘锦建设资质网站wordpress数据库ip
  • 做那事的网站工作室网页模板
  • 网站游戏制作开发吉林市网站推广
  • 如何给网站续费潮流印花图案设计网站
  • 广州市官网网站建设怎么样wordpress元器件
  • 网站的好处平面设计公司赚钱吗
  • 淘掌门官方网站wordpress h1美化
  • php网站只能打开首页怎么利用百度云盘做网站
  • 自建网站流程2023网站推广入口
  • 外贸网站建设团队物流公司网站方案
  • 怎么在公众号做影视网站小马厂网站建设
  • 设计了网站首页建筑网价格
  • 科凡网站建设公司彩页宣传手册
  • 门网站源码好的网站建设价格
  • 上海企业建站咨询无锡cms建站
  • 学校网站建设项目可行性分析报告沈阳恢复营业通知
  • 成品免费观看网站wordpress jquery.js
  • 网站如何做301跳转专业的广州微网站建设
  • 自己做网站服务器多少钱怀化最新通知今天