php 面试问题收集--算法篇

算法题:

问:实现整数转二进制字符串函数 ToBinString ,例如,输入 3 输出 "11",输入 11 输出 "1011"。
php版:

//php实现进制转换
function dec2bin($num)
{
    if ($num == 0) return 0;

    $flag = array();
    while ($num != 0) {
        array_push($flag, $num % 2);
        $num = (int)($num / 2);
    }
    $result = '';
    while (!empty($flag)) {
        $result .= array_pop($flag);
    }
    return $result;
}

echo dec2bin($n);

问:实现返回一个由英文字符组成的字符串含最大不重复字符子串长度,并添加测试用例。

php版:

 $len ? strlen($find) : $len;
        }
        return $len;
    }
}

golang版:

//寻找最长不含有重复字符的子串,里面的rune直接把中文转为一个字节,中英文一起操作
func lengthOf(s string) int{
    lastOcc:=make(map[rune]int)
    srart :=0
    maxLength:=0
    for i ,ch :=range []rune(s){
        if lastI,ok:=lastOcc[ch];ok&& lastI>=srart{
            srart=lastI+1
        }
        if i-srart+1 >maxLength{
            maxLength=i-srart+1
        }
        lastOcc[ch]=i
    }
    return maxLength
}

你可能感兴趣的:(后端,php,golang)