一、需求
-
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。
-
为简单起见,标点符号和普通字母一样处理。
-
例如输入字符串"I am a student. ",则输出"student. a am I"。
示例 1:
输入: "the sky is blue"
输出: "blue is sky the"
示例 2:
输入: " hello world! "
输出: "world! hello"
解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
示例 3:
输入: "a good example"
输出: "example good a"
解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
二、暴力法
2.1 思路分析
- 首先我们去掉一个字符串的首尾空格,然后遍历字符串的每一个字符,若字符不为空格,那么就拼接到一个字符串变量中;
- 遇到空格,说明这个单词结束了,将这个字符串变量放到集合中,继续判断下一个字符是否为空格,如果是就跳到下一个字符,直到不是空格;
- 当字符串遍历结束后,还要将最后一个单词加入到集合中;
- 最后遍历集合,按照逆序的方式将字符串拼接起来返回即可;
2.2 代码实现
class S