除了“ str_repeat”以外,是否还有其他手动方法可以重复该字符串?

时间:2019-05-21 05:11:29

标签: php

我的意思是,如果我们将3,b作为传递给函数的参数,则应使用循环返回“ bbb”。

我已经尝试了一些代码,但是我不想发布它,因为对于一个精通的开发人员来说,它可能看起来很疯狂。我可以为您提供链接,这个问题是在访谈中提出的,主要是他们希望它可以用C或C ++计算。由于我是PHP的从业者,所以我很想知道在PHP中这是可能的。以下是链接(第2回合:简单编码(3小时)) https://www.geeksforgeeks.org/zoho-interview-set-3-campus/

2 个答案:

答案 0 :(得分:1)

用于执行此操作的PHP函数可能如下所示:

function string_repeat($num, $string)
{
    $result = "";
    for ($x = 0; $x < $num; $x++) {
        $result .= $string;
    }
    return $result;
}

因此调用echo string_repeat(3, 'b');将输出:

bbb

答案 1 :(得分:0)

一种方法是保留一个“虚拟”字符串,该字符串的长度要比要生成的任何字符串长。然后,我们可以使用preg_replace用输入的内容替换每个字符。最后,我们可以将替换字符串的子字符串替换为所需的长度。

$dummy = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$length = 3;
$dummy = preg_replace('/./', 'b', $dummy);
$output = substr($dummy, 0, $length);
echo $output;

此打印:

bbb

如果您确实想这样做,可以将其包装到一个辅助函数中。请注意,内部正则表达式引擎很可能会自己执行一些循环,因此我们并没有真正使自己摆脱循环,只是将其隐藏在当前上下文之外。