gpt4 book ai didi

php - 将一组字符计数为一个单元的字符串排列

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:14:18 24 4
gpt4 key购买 nike

我的问题可能听起来很菜鸟,但就是这样。

我将用户输入为“Karim@123”。我希望我的程序创建将“Karim”、“@”和“123”视为单个独立单元的给定输入的排列。因此输出将类似于“karim123@”、“@karim123”、“@123karim” “123@karim”,“123karim@”。记住会有3个!在这种特殊情况下的排列。我正在使用一个 php 函数,但该函数告诉我“karim@123”的所有排列,这不是我想要的。函数如下。

function permute($str,$i,$n) {
if ($i == $n)
print "$str\n";
else {
for ($j = $i; $j < $n; $j++) {
swap($str,$i,$j);
permute($str, $i+1, $n);
swap($str,$i,$j); // backtrack.
}
}
}

// function to swap the char at pos $i and $j of $str.
function swap(&$str,$i,$j) {
$temp = $str[$i];
$str[$i] = $str[$j];
$str[$j] = $temp;
}
$str = "hey";
permute($str,0,strlen($str));

PS:我是编程和算法的新手。

PPS:请在投票前说明原因。

最佳答案

假设您划分字符串的方式是将所有字母字符放在一起,将所有特殊字符放在一起,将所有数字放在一起,您可以为上面的示例创建这样的映射:

A => Karim
B => @
C => 123

然后创建“ABC”的所有排列,这将是:

ABC, ACB, BAC, BCA, CAB, CBA

并替换为 map 中的相应值。

关于php - 将一组字符计数为一个单元的字符串排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43450716/

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