내 질문에 멍청한 소리가 들릴 수도 있지만 여기에 있습니다.문자 그룹을 단일 단위로 계산하는 문자열의 순열
사용자로부터 "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));
추 신 : 프로그래밍 및 알고리즘에 익숙하지 않습니다.
PPS : downvoting 전에 이유를 지정하십시오. 모든 만들 그런
A => Karim
B => @
C => 123
: 당신이 문자열을 분할하는 방법을 가정
는
왜 'Karim', '@'및 '123'과 같이 문자열의 3 개 구획을 만들고 4, 5 또는 2 또는 'k'나눗셈을 사용하지 않는 이유는 무엇입니까? – vish4071
모든 알파벳 문자가 함께 포함 된 그룹의 문자열을 그룹화하고 모든 특수 문자를 함께 묶어서 모든 숫자를 함께 그룹화 할 수 있습니까? – vish4071
정확합니다. 또한 입력 문자열의 패턴은 다음과 같습니다. "단어"+ "특수 문자"+ "숫자". –