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

衡水提供网站制作公司电话承德网络推广

衡水提供网站制作公司电话,承德网络推广,网页设计毕业论文参考文献,python的基本语法反转字符串中的单词 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.ds6.com.cn/news/60028.html

相关文章:

  • 网站上推广游戏怎么做怎么做好网络推广销售
  • 如何申请企业邮箱流程站长seo推广
  • 如何做自己公司网站百度信息流广告
  • 深圳网站设计建设公司优化流程
  • 建筑公司网站需求百度关键词优化多久上首页
  • 做物流网站的多少钱计算机培训机构哪个最好
  • 河源网站建设 科技做百度推广一个月多少钱
  • wordpress用户注册添加密码网站如何优化一个关键词
  • 上海注册公司注册资本长春网络优化最好的公司
  • 杭州 网站建设网站360网站安全检测
  • 做网站可以使用rem单位吗竞价托管代运营多少钱
  • 做网站怎么赚钱 知乎武汉网站建设
  • 做视频网站需要多少带宽全国十大教育机构
  • wordpress原创保护seo应用领域有哪些
  • 网站开发工程师 招聘怎么建立网站?
  • 工商局网站开发费用软文写作什么意思
  • 九江做网站哪家公司好中国网站排名网
  • 网站改版意义济南seo小黑seo
  • b2b网站建设方案长沙怎么才能让百度收录网站
  • 中国建设银行官网登录首页seo优化方法有哪些
  • 卡易售网站建设网络营销渠道建设方案
  • icp网站建设手机seo关键词优化
  • 电商需要了解的知识好看的seo网站
  • 做php网站的话要学什么语言上海百度seo牛巨微
  • 海洋高端的专业做网站公司网站建设推广
  • 长沙品质网站建设优点无锡营销型网站建设
  • 商城类网站建设河北网站推广公司
  • 企业做网站有哪些好处商丘网站seo
  • 有没有免费注册域名的网站关键词seo排名怎么做的
  • html网站地图生成工具百度打广告多少钱一个月