gpt4 book ai didi

php - 如何在 PHP 中的所有变体中划分字符串

转载 作者:行者123 更新时间:2023-12-04 06:29:30 24 4
gpt4 key购买 nike

我为我的英语感到抱歉。
我需要所有变体中的除法字符串函数,顺序和长度保持不变。

输入'abc'

输出 'abc/a,bc/ab,c/a,b,c'

或者

输入'rrd'

输出'rrd/r,rd/rr,d/r,r,d'

谢谢你

最佳答案

检查这个“漂亮”的代码,对我来说是个不错的大脑训练师:)
它肯定需要一些优化,但工作完美。
注意:array_reverse() 和 strrev() 可以删除,但这样顺序看起来更好。

function TheFunction($s) {
for($i=strlen($s)-1;$i>0;$i--) $h .= '1';
$z = str_replace('1','0',$h);
for($i=bindec($h);$i>=0;$i--) $array[] = strrev(substr_replace($z, decbin($i), strlen($z)-strlen(decbin($i))));
foreach($array as $value){
$value = str_replace(array('0','1'),array(' ',','),$value);
$string = '';
for($i=0;$i<strlen($s)-1;$i++) $string .= $s[$i].$value[$i];
$string .= $s[strlen($s)-1];
$results[] = str_replace(' ','',$string);
}
return array_reverse($results);
}

例子
print_r(TheFunction('Anne'));

退货
Array
(
[0] => Anne
[1] => A,nne
[2] => An,ne
[3] => A,n,ne
[4] => Ann,e
[5] => A,nn,e
[6] => An,n,e
[7] => A,n,n,e
)

另一个例子
print_r(TheFunction('Stack'));

返回:
Array
(
[0] => Stack
[1] => S,tack
[2] => St,ack
[3] => S,t,ack
[4] => Sta,ck
[5] => S,ta,ck
[6] => St,a,ck
[7] => S,t,a,ck
[8] => Stac,k
[9] => S,tac,k
[10] => St,ac,k
[11] => S,t,ac,k
[12] => Sta,c,k
[13] => S,ta,c,k
[14] => St,a,c,k
[15] => S,t,a,c,k
)

关于php - 如何在 PHP 中的所有变体中划分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5614491/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com