From e0d270da6de1e535f0f991d15f9239da72f524ae Mon Sep 17 00:00:00 2001 From: huangge1199 Date: Fri, 9 Jul 2021 14:40:26 +0800 Subject: [PATCH] =?UTF-8?q?344:=E5=8F=8D=E8=BD=AC=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=E4=B8=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../leetcode/editor/cn/ReverseString.java | 46 +++++++++++++++++++ .../java/leetcode/editor/cn/ReverseString.md | 19 ++++++++ .../editor/cn/ReverseWordsInAStringIii.java | 30 ++++++------ 3 files changed, 81 insertions(+), 14 deletions(-) create mode 100644 src/main/java/leetcode/editor/cn/ReverseString.java create mode 100644 src/main/java/leetcode/editor/cn/ReverseString.md diff --git a/src/main/java/leetcode/editor/cn/ReverseString.java b/src/main/java/leetcode/editor/cn/ReverseString.java new file mode 100644 index 0000000..8e6ebf5 --- /dev/null +++ b/src/main/java/leetcode/editor/cn/ReverseString.java @@ -0,0 +1,46 @@ +//编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 +// +// 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 +// +// 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。 +// +// +// +// 示例 1: +// +// 输入:["h","e","l","l","o"] +//输出:["o","l","l","e","h"] +// +// +// 示例 2: +// +// 输入:["H","a","n","n","a","h"] +//输出:["h","a","n","n","a","H"] +// Related Topics 递归 双指针 字符串 +// 👍 422 👎 0 + +package leetcode.editor.cn; + +//344:反转字符串 +public class ReverseString { + public static void main(String[] args) { + //测试代码 + Solution solution = new ReverseString().new Solution(); + } + + //力扣代码 + //leetcode submit region begin(Prohibit modification and deletion) + class Solution { + public void reverseString(char[] s) { + int length = s.length; + int size = length % 2 == 0 ? length / 2 : length / 2 + 1; + for (int i = 0; i < size; i++) { + char temp = s[i]; + s[i] = s[length - 1 - i]; + s[length - 1 - i] = temp; + } + } + } +//leetcode submit region end(Prohibit modification and deletion) + +} \ No newline at end of file diff --git a/src/main/java/leetcode/editor/cn/ReverseString.md b/src/main/java/leetcode/editor/cn/ReverseString.md new file mode 100644 index 0000000..bea9294 --- /dev/null +++ b/src/main/java/leetcode/editor/cn/ReverseString.md @@ -0,0 +1,19 @@ +

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。

+ +

不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。

+ +

你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。

+ +

 

+ +

示例 1:

+ +
输入:["h","e","l","l","o"]
+输出:["o","l","l","e","h"]
+
+ +

示例 2:

+ +
输入:["H","a","n","n","a","h"]
+输出:["h","a","n","n","a","H"]
+
Related Topics
  • 递归
  • 双指针
  • 字符串
  • \n
  • 👍 422
  • 👎 0
  • \ No newline at end of file diff --git a/src/main/java/leetcode/editor/cn/ReverseWordsInAStringIii.java b/src/main/java/leetcode/editor/cn/ReverseWordsInAStringIii.java index d6f6c9d..0c6d937 100644 --- a/src/main/java/leetcode/editor/cn/ReverseWordsInAStringIii.java +++ b/src/main/java/leetcode/editor/cn/ReverseWordsInAStringIii.java @@ -19,30 +19,32 @@ // 👍 300 👎 0 package leetcode.editor.cn; + //557:反转字符串中的单词 III -public class ReverseWordsInAStringIii{ +public class ReverseWordsInAStringIii { public static void main(String[] args) { //测试代码 Solution solution = new ReverseWordsInAStringIii().new Solution(); } + //力扣代码 //leetcode submit region begin(Prohibit modification and deletion) -class Solution { - public String reverseWords(String s) { - StringBuilder str = new StringBuilder(); - StringBuilder ss = new StringBuilder(); - for (char ch:s.toCharArray()){ - if(ch!=' '){ - str.append(ch); - }else{ - ss.append(str.reverse()).append(" "); - str = new StringBuilder(); + class Solution { + public String reverseWords(String s) { + StringBuilder str = new StringBuilder(); + StringBuilder ss = new StringBuilder(); + for (char ch : s.toCharArray()) { + if (ch != ' ') { + str.append(ch); + } else { + ss.append(str.reverse()).append(" "); + str = new StringBuilder(); + } } + ss.append(str.reverse()); + return ss.toString(); } - ss.append(str.reverse()); - return ss.toString(); } -} //leetcode submit region end(Prohibit modification and deletion) } \ No newline at end of file