1071. Greatest Common Divisor of Strings

class Solution {

    /**
     * @param String $str1
     * @param String $str2
     * @return String
     */
    function gcdOfStrings($str1, $str2) {
        if ($str1 == $str2) {
            return $str1;
        }

        $a = strlen($str1);
        $b = strlen($str2);
        if ($a == 0 && $b == 0) {
            return '';
        } elseif ($a == 0) {
            return $str2;
        } elseif ($b == 0){
            return $str1;
        }

        if ($str1.$str2 !== $str2.$str1) {
            return '';
        }

        if ($a > $b) {
            return self::gcdOfStrings(substr($str1, $b), $str2);
        } else {
            return self::gcdOfStrings($str1, substr($str2, $a));
        }
        
    }
}

Last updated