[PHP 학습] 문자열의 완전한 배열을 이루는 방법

little bottle
풀어 주다: 2023-04-06 10:02:01
앞으로
2794명이 탐색했습니다.

이 기사의 주요 내용은 PHP를 사용하여 문자열의 전체 배열을 구현하는 것에 관한 것입니다. 관심 있는 친구들은 이에 대해 배울 수 있습니다.

문자열을 입력하고 해당 문자열의 모든 문자 순열을 사전순으로 인쇄합니다.

예를 들어 문자열 abc를 입력하면 a, b, c 문자로 배열될 수 있는 abc, acb, bac, bca, cab, cba 문자열이 모두 인쇄됩니다.
아이디어:
1. 재귀 트리를 형성하여 첫 글자를 수정하고

2. 깊이 우선순위는 재설정 후에만 재개될 수 있습니다

3.

<?phpfunction test($str,$start,&$res){        //递归终止条件
        if($start==strlen($str)){                $res[]=$str;                return;
        }   
        //  
        for($i=$start;$i<strlen($str);++$i){                if($i==$start || $str{$i}!=$str{$start}){
                        swap($str,$i,$start);var_dump($str.&#39;===&#39;.$start);var_dump($res);sleep(1);
                        test($str,$start+1,$res);
                        swap($str,$i,$start);
                }   
    
        }   
        return $res;
}function swap(&$str,$a,$b){        
if(!is_string($str)) return;        
$t=$str{$a};        
$str{$a}=$str{$b};        
$str{$b}=$t;
}$str="abc";$res=array();//调用入口,从索引0开始
$res=test($str,0,$res);
var_dump($res);
로그인 후 복사

string(7) "abc===0"array(0) {
}string(7) "abc===1"array(0) {
}string(7) "abc===2"array(0) {
}string(7) "acb===1"array(1) {
  [0]=>  string(3) "abc"}string(7) "acb===2"array(1) {
  [0]=>  string(3) "abc"}string(7) "bac===0"array(2) {
  [0]=>  string(3) "abc"
  [1]=>  string(3) "acb"}string(7) "bac===1"array(2) {
  [0]=>  string(3) "abc"
  [1]=>  string(3) "acb"}string(7) "bac===2"array(2) {
  [0]=>  string(3) "abc"
  [1]=>  string(3) "acb"}string(7) "bca===1"array(3) {
  [0]=>  string(3) "abc"
  [1]=>  string(3) "acb"
  [2]=>  string(3) "bac"}string(7) "bca===2"array(3) {
  [0]=>  string(3) "abc"
  [1]=>  string(3) "acb"
  [2]=>  string(3) "bac"}string(7) "cba===0"array(4) {
  [0]=>  string(3) "abc"
  [1]=>  string(3) "acb"
  [2]=>  string(3) "bac"
  [3]=>  string(3) "bca"}string(7) "cba===1"array(4) {
  [0]=>  string(3) "abc"
  [1]=>  string(3) "acb"
  [2]=>  string(3) "bac"
  [3]=>  string(3) "bca"}string(7) "cba===2"array(4) {
  [0]=>  string(3) "abc"
  [1]=>  string(3) "acb"
  [2]=>  string(3) "bac"
  [3]=>  string(3) "bca"}string(7) "cab===1"array(5) {
  [0]=>  string(3) "abc"
  [1]=>  string(3) "acb"
  [2]=>  string(3) "bac"
  [3]=>  string(3) "bca"
  [4]=>  string(3) "cba"}string(7) "cab===2"array(5) {
  [0]=>  string(3) "abc"
  [1]=>  string(3) "acb"
  [2]=>  string(3) "bac"
  [3]=>  string(3) "bca"
  [4]=>  string(3) "cba"}array(6) {
  [0]=>  string(3) "abc"
  [1]=>  string(3) "acb"
  [2]=>  string(3) "bac"
  [3]=>  string(3) "bca"
  [4]=>  string(3) "cba"
  [5]=>  string(3) "cab"}
로그인 후 복사

관련 튜토리얼:

PHP 비디오 튜토리얼

위 내용은 [PHP 학습] 문자열의 완전한 배열을 이루는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿