题目: Write a function that takes a string as input and returns the string reversed.
Example:
Given s = “hello”, return “olleh”.
分析: 经典字符串反转问题,有n种解法,考虑到时间复杂度最低,还是采用两头往中间凑的方法实现。
Code:
public class Solution {
public String reverseString(String s) {
if("".equals(s)||s.length() == 1)
{
return s;
}
char[] array = s.toCharArray();
int end = s.length() - 1;
int halfLength = end / 2;
for (int i = 0; i <= halfLength; i++) {
char temp = array[i];
array[i] = array[end-i];
array[end-i] = temp;
}
return new String(array);
}
}
其它解法
Google了一下其他的解法,发现大家对这个问题回答的都很嗨。比较好玩的解法有stack法,异或解法。第二篇采用了C#语言实现相关算法,并给出了性能的比较,推荐大家阅读。
具体请看链接:
Java实现字符串反转的8种或9种方法
趣味算法:字符串反转的N种方法