js实现单词倒排 - 翻转单词顺序

摘要:给定一个字符串,翻转该字符串,翻转时单词中的字符顺序不变。例如,如果字符串为Hello World,则翻转后为World Hello。单词间以一个或多个空格分隔。注意,字符串开头和结尾都可能有多个空格

给定一个字符串,翻转该字符串,翻转时单词中的字符顺序不变。例如,如果字符串为"Hello World",则翻转后为"World Hello"。单词间以一个或多个空格分隔。注意,字符串开头和结尾都可能有多个空格。

输入格式:
输入可能包括多行。每行代表一个字符串,除了空格外,标点符号和普通字母一样处理。你可以认为一行的字符总数不会超过50000个,单词数不会超过600,每个单词的长度也不会超过30。

输出格式:
输出包括多行,每行对应输入的一行,为翻转后的字符串。

样例:

student. a am I
输出:
I am a student.


解题思路(路径循环法)

  1. 去掉字符串两侧空格
  2. 以空格为基础分割,分割之后过滤掉中间的空格
  3. 将数组反转之后再连接即可


代码

var reverseWords = function(s) {
// 去掉字符串两侧空格
s = s.trim();
// 以空格为基础分割,分割之后过滤掉中间的空格
const temp = s.split(' ').filter(value => value !== '')
// 将数组反转之后再连接即可
return temp.reverse().join(' ')
};
reverseWords('student. a am I') //'I am a student.'


总结(本题给我们的启示思路)

  • 启示一:学会使用trim去掉字符串两侧空格,这个函数不会对原字符串产生影响,因此需要自己进行赋值
  • 启示二:学会使用filter对数组进行过滤
  • 启示三:学会使用reverse对数组进行反转
  • 启示四:学会使用join连接数组为字符串
  • 本题思路较为简单,主要是要对常用API比较熟悉


本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_10990