输入字符串“dog loves pig” 翻转为 “pig loves dog”。
- 思路: 本题的解法思路可以是先翻转整个字符串中的每个字符,翻转后的结果为“gip sevol god”,接下来通过翻转每一个单词,即以空格为分隔符来进行翻转
“pig loves dog”
下面代码实现中通过先把字符串转为字符串数组,并通过遍历把每个字符都翻转,在最后根据空格来翻转每个单词。
public class ReverseStr {
public static String reverStr(String str) {
if(str == null || str.length() == 0) return "";
char[] arr = str.toCharArray();
int left = 0,right = arr.length -1;
reverseStr(arr,left,right);
// gip sevol god
left = 0;
for(int i = 0;i < arr.length;i++) {
if(arr[i] == ' ') {
reverseStr(arr,left,i-1);
left = i+1;
}else if(i == arr.length -1) {
reverseStr(arr,left,i);
}
}
return new String(arr);
}
private static void reverseStr(char[] arr,int left,int right) {
while(left < right) {
char temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
left++;
right--;
}
}
public static void main(String[] args) {
String str = "dog loves pig";
System.out.println(reverStr(str));
}