public class ReverseString58_ {
public static void main(String[] args) {
String str = "i am a student!";
System.out.println(reverseString(str));
}
private static String reverseString(String str) {
char[] arr = str.toCharArray();
int length = arr.length;
//i指向每个空格后的第一个字符,j指向空格或者最后一个字符的后一个
int i = 0, j = 0;
while (j <= length) {
if (j == length || arr[j] == ' ') {
reverse(arr, i, j-1);
i = j + 1;
}
j++;
}
reverse(arr, 0, arr.length - 1);
return new String(arr);
}
public static void reverse(char[] arr, int i, int j) {
while (i < j) {
swap(arr, i++, j--);
}
}
private static void swap(char[] arr, int i, int j) {
char temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
剑指offer58 反转字符串 Java
猜你喜欢
转载自blog.csdn.net/weixin_43065507/article/details/99335282
今日推荐
周排行