[小米]字符串重组


输入:****a * b * c*.....
输出:*******abc.....

将所有的*都移动到字符串的前半部分,字符移动到后半部分,保证字符的顺序。
已邀请:
    /* java */
    char[] method(char[] input){
        // 从后往前遍历,一边计算*号个数,一边将其它字符置于此时*号数量之后位置,最后填补*号。
        // 也可以直接在input上操作,因为元素只需遍历一次,且覆盖的是遍历过的元素。
        char[] result = new char[input.length];
        int mark = input.length - 1;
        int asteriskNum = 0;
        for( ; mark >= 0 ; mark--){
            char c = input[mark];
            if(c != '*'){
                result[mark + asteriskNum] = c;
            }else{
                asteriskNum++;
            }
        }
        for( int i = 0 ; i < asteriskNum ; i++){
            result[i] = '*';
        }
        return result;
    }

要回复问题请先登录注册