Write a function that takes a string as input and returns the string reversed.
- Example 1:
- Input: "hello"
- Output: "olleh"
- Example 2:
- Input: "A man, a plan, a canal: Panama"
- Output: "amanaP :lanac a ,nalp a ,nam A"
- // 方法一: 用 StringBuilder, Time: O(n), Space: O(n)
- public String reverseString(String s) {
- if (s == null || s.length() == 0) {
- return s;
- }
- StringBuilder sb = new StringBuilder();
- for(int i = s.length() - 1; i>= 0; i--) {
- sb.append(s.charAt(i));
- }
- return sb.toString();
- }
- // 方法二: 用 array, Time: O(n), Space: O(n)
- public String reverseString(String s) {
- if (s == null || s.length() == 0) {
- return s;
- }
- char[] result = s.toCharArray();
- int i = 0;
- int j = result.length - 1;
- while (i < j) {
- swap(i, j, result);
- i++;
- j--;
- }
- return new String(result);// 最后要把 array 再转回 string
- }
- public void swap(int i, int j, char[] c) {
- char temp = c[i];
- c[i] = c[j];
- c[j] = temp;
- }
来源: http://www.bubuko.com/infodetail-2787496.html