diff --git a/src/main/java/leetcode/editor/cn/ReverseWordsInAString.java b/src/main/java/leetcode/editor/cn/ReverseWordsInAString.java new file mode 100644 index 0000000..f28f999 --- /dev/null +++ b/src/main/java/leetcode/editor/cn/ReverseWordsInAString.java @@ -0,0 +1,84 @@ +//

给你一个字符串 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"
+//解释:如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。
+//
+// +//

 

+// +//

提示:

+// +// +// +// +// +//

 

+// +//

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

+// +//
Related Topics
  • 双指针
  • 字符串

  • 👍 703
  • 👎 0
  • +package leetcode.editor.cn; + +// 151:反转字符串中的单词 +public class ReverseWordsInAString { + public static void main(String[] args) { + Solution solution = new ReverseWordsInAString().new Solution(); + // TO TEST + System.out.println(solution.reverseWords(" hello world ")); + } + + //leetcode submit region begin(Prohibit modification and deletion) + class Solution { + public String reverseWords(String s) { + while (s.contains(" ")) { + s = s.replace(" ", " "); + } + if (s.charAt(0) == ' ') { + s = s.substring(1); + } + if (s.charAt(s.length() - 1) == ' ') { + s = s.substring(0, s.length() - 1); + } + String[] strs = s.split(" "); + s = ""; + for (int i = strs.length - 1; i >= 0; i--) { + s += strs[i] + " "; + } + return s.substring(0, s.length() - 1); + } + } +//leetcode submit region end(Prohibit modification and deletion) + +} diff --git a/src/main/java/leetcode/editor/cn/doc/content/ReverseWordsInAString.md b/src/main/java/leetcode/editor/cn/doc/content/ReverseWordsInAString.md new file mode 100644 index 0000000..3fe49a2 --- /dev/null +++ b/src/main/java/leetcode/editor/cn/doc/content/ReverseWordsInAString.md @@ -0,0 +1,51 @@ +

    给你一个字符串 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"
    +解释:如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。
    +
    + +

     

    + +

    提示:

    + + + + + +

     

    + +

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

    + +
    Related Topics
  • 双指针
  • 字符串

  • 👍 703
  • 👎 0
  • \ No newline at end of file