443. String Compression

預先跑一個字串,並與前一項比較,就可以知道是不是最後一項。先組字串,在拆解依序寫回原本的陣列

class Solution {

    /**
     * @param String[] $chars
     * @return Integer
     */
    function compress(&$chars) {
        $result = $chars[0];
        $count = 1;
        for($index = 1; $index <= count($chars); $index++) {
            if ($chars[$index] == $chars[$index - 1]) {
                $count++;
            } else {
                if ($count > 1) {
                    $result .= "$count{$chars[$index]}";
                } else {
                    $result .= $chars[$index];
                }

                $count = 1;  
            }
        }

        $strings = str_split($result);
        foreach($strings as $index => $string) {
            $chars[$index] = $string;
        }

        return count($strings);
    }
}

Last updated