Reverse Entry

先跟reverse string一样,整个反转,然后因为要找的是tag符号:所以当找到这个符号的时候,开始反转tag,但是要主要连续;的情况,所以找:和&之间的


public class reverseString {
    //inplace
    public static String reverse1(String s){
        if(s == null || s.length() == 0) return s;
        char[] arr= s.toCharArray();
        reverse(arr, 0, s.length() - 1);
        for(int i = 0; i < arr.length; i++){
            if(arr[i] == ';'){
                int j = i + 1;

                while(j < arr.length && arr[j] != '&'){
                    if(arr[j] == ';') {
                        i = j;
                    }
                    j++;
                }

                if(j != arr.length){

                    reverse(arr, i, j);
                }
                i = j;
            }
        }

        return new String(arr);
    }

    public static void reverse(char[] s, int start, int end){
        while( start < end){
            char tmp = s[start];
            s[start++] = s[end];
            s[end--] = tmp;
        }
    }

results matching ""

    No results matching ""