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

衡水提供网站制作公司电话产品市场推广方案

衡水提供网站制作公司电话,产品市场推广方案,成都比较好的室内设计公司有哪些,做网站是用什么软件反转字符串中的单词 https://leetcode.cn/problems/reverse-words-in-a-string/ 描述 给你一个字符串 s ,请你反转字符串中 单词 的顺序单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开 返回 单词 顺序颠倒且 单词 之间用单个空…

反转字符串中的单词

  • https://leetcode.cn/problems/reverse-words-in-a-string/

描述

  • 给你一个字符串 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 <= 1 0 4 10^4 104

  • s 包含英文大小写字母、数字和空格 ’ ’

  • s 中 至少存在一个 单词

  • 进阶:如果字符串在你使用的编程语言中是一种可变数据类型,请尝试使用 O(1) 额外空间复杂度的 原地 解法

Typescript 版算法实现


1 ) 方案1: 使用语言特性

function reverseWords(s: string): string {return s.trim().split(/\s+/).reverse().join(' ');
};

2 ) 方案2: 自行编写对应的函数

function trimSpaces(s: string): string[] {let left = 0, right = s.length - 1;// 去掉字符串开头的空白字符while (left <= right && s[left] === ' ') {left++;}// 去掉字符串末尾的空白字符while (left <= right && s[right] === ' ') {right--;}// 将字符串间多余的空白字符去除const output: string[] = [];while (left <= right) {if (s[left] !== ' ') {output.push(s[left]);} else if (output.length > 0 && output[output.length - 1] !== ' ') {output.push(s[left]);}left++;}return output;
}function reverse(l: string[], left: number, right: number): void {while (left < right) {[l[left], l[right]] = [l[right], l[left]];left++;right--;}
}function reverseEachWord(l: string[]): void {const n = l.length;let start = 0, end = 0;while (start < n) {// 循环至单词的末尾while (end < n && l[end] !== ' ') {end++;}// 翻转单词reverse(l, start, end - 1);// 更新start,去找下一个单词start = end + 1;end = start;}
}function reverseWords(s: string): string {const l = trimSpaces(s);// 翻转字符串reverse(l, 0, l.length - 1);// 翻转每个单词reverseEachWord(l);return l.join('');
}

3 ) 方案3: 双端队列

function reverseWords(s: string): string {let left = 0, right = s.length - 1;// 去掉字符串开头的空白字符while (left <= right && s[left] === ' ') {left++;}// 去掉字符串末尾的空白字符while (left <= right && s[right] === ' ') {right--;}const words: string[] = [];let word: string[] = [];// 将单词 push 到数组中while (left <= right) {if (s[left] === ' ' && word.length > 0) {words.unshift(word.join(''));word = [];} else if (s[left] !== ' ') {word.push(s[left]);}left++;}// 添加最后一个单词if (word.length > 0) {words.unshift(word.join(''));}return words.join(' ');
}
http://www.dinnco.com/news/35561.html

相关文章:

  • 建设部网站资质查询百度网盘官网登录首页
  • 海沧建设网站多少钱什么是sem
  • 网站建设商家如何建立免费公司网站
  • wordpress开源可视化编辑湖南网络优化服务
  • 有哪些网站可以自己做加视频网站日常维护有哪些
  • 中国网络百度权重优化软件
  • 青岛做网站报价销售系统
  • 网站极速备案惠州百度seo找谁
  • 有和wind一样做用网站流量宝官网
  • 香港主机做福彩网站网络营销专业大学排名
  • 网站建设分为几种网站免费网站免费优化优化
  • wordpress 分页新乡seo优化
  • 国外做游戏h动画的网站常州谷歌推广
  • 重庆百度seo关键词优化seo代理计费系统
  • 网站LOGO透明底色PNG格式怎么做的aso苹果关键词优化
  • 义乌做网站要多少钱seo综合查询站长工具怎么用
  • 海南美容网站建设网络整合营销
  • 网站有什么优势石家庄seo推广
  • 做好网站改版工作跨境电商平台推广
  • 网站网站制作服务seo网络推广技术员招聘
  • 3合1网站建设谷歌官方网站
  • 邢台市网站开发公司有哪些什么推广平台比较好
  • 制作网站建设的公司2023年8月疫情严重吗
  • 建平台跟建网站汕头seo推广
  • 劳务网站怎样做百度seo排名规则
  • 在线客服系统排名沈阳seo公司
  • 做赚钱的网站有哪些互联网营销师是哪个部门发证
  • 一起做网店网站官方百度竞价点击价格公式
  • 网站建设包含哪些百度公司官网招聘
  • 在什么网站上可以做中学数学家教神马推广