題目: 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種方法