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

dede网站制作教程深圳网络推广培训机构

dede网站制作教程,深圳网络推广培训机构,如何看一个网站的备案在哪里做的,知识网站反转字符串中的单词 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.hkea.cn/news/442859/

相关文章:

  • 商城网站带宽控制河南网站建设哪家公司好
  • 贵阳网络公司网站建设网络推广公司深圳
  • 企业网站建设公司电话西安seo分析报告怎么写
  • 岳阳市政府网网站seo优化报告
  • 门头沟网站建设外贸谷歌推广
  • 铜陵市住房和城乡建设委员会网站中国最新疫情最新消息
  • 动态网站建设 教程接广告推广的平台
  • 人力资源和社会保障部是干什么的seo最新快速排名
  • 网站标题关键优化网络营销代运营外包公司
  • 罗山网站建设seo网络推广优化
  • 如何在eclipse上做网站网站链接查询
  • 企业网站如何设计网页直通车推广计划方案
  • 简单的购物网站设计seo网络推广知识
  • 做众筹的网站关键词网站推广
  • 做网站 页面自适应渠道推广
  • 广东企业网站建设策划高端网站设计公司
  • wordpress文章批量编辑网站优化方案模板
  • 北京互联网公司开发的网站今日关注
  • 网站限制上传图片大小免费网络推广100种方法
  • 提供网站建设服务的网站价格快速推广
  • 政府网站建设原则 统筹规划进入百度官网
  • 网站如何做等级保护谷歌搜索引擎363
  • 天河网站建设网络推广不属于网络推广方法
  • 阜阳中国建设银行官网站百度提交入口网站网址
  • 游戏网站怎么建设广告营销公司
  • 韩城做网站b2b平台推广网站
  • 网站建设课程设计摘要生活中的网络营销有哪些
  • 简单网站建设优化推广100个电商平台
  • 网站建设的仿站seo顾问收费
  • 珠宝行业做网站的好处株洲seo排名