輸入字符串“dog loves pig” 翻轉(zhuǎn)為 “pig loves dog”。
- 思路: 本題的解法思路可以是先翻轉(zhuǎn)整個(gè)字符串中的每個(gè)字符,翻轉(zhuǎn)后的結(jié)果為“gip sevol god”,接下來(lái)通過(guò)翻轉(zhuǎn)每一個(gè)單詞,即以空格為分隔符來(lái)進(jìn)行翻轉(zhuǎn)
“pig loves dog”
下面代碼實(shí)現(xiàn)中通過(guò)先把字符串轉(zhuǎn)為字符串?dāng)?shù)組,并通過(guò)遍歷把每個(gè)字符都翻轉(zhuǎn),在最后根據(jù)空格來(lái)翻轉(zhuǎn)每個(gè)單詞。
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));
}