字符串翻转

输入字符串“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));
    }

你可能感兴趣的:(字符串翻转)