LeetCode 344. Reverse String 原创Java参考解答
问题描述
https://leetcode.com/problems/reverse-string/
Write a function that takes a string as input and returns the string reversed.
Example:
Given s = “hello”, return “olleh”.
解题思路
题目求做反转字符串。
这道题有很多做法,这里列举一种简单的做法:单循环字符数组,把第 i 位和倒数第 i 位置交换即可。循环只用到字符串长度的一半位置结束就可以。
参考代码1
public class Solution { public String reverseString(String s) { char[] chars = s.toCharArray(); for (int i = 0; i < chars.length / 2; i++) { char temp = chars[chars.length - 1 - i]; chars[chars.length - 1 - i] = chars[i]; chars[i] = temp; } return new String(chars); } }
参考代码2:递归版本
这道题递归的方法提交会超时。但是面试中面试官往往会在面试者写出非递归的方法后,要求再写一个递归版本方法。所以这里提供递归版本供大家参考。
public class Solution { public String reverseString(String s) { if (s.length() == 0) { return ""; } return reverseString(s.substring(1)) + s.charAt(0); } }