Bitmasking for All Subsequences
To include both contiguous and non-contiguous substrings (subsequences), you can use a more advanced technique involving bitmasking. This method represents each substring as a binary number, where each bit determines whether a character at a certain position is included in the substring.
PHP
<?php function getAllSubstrings( $string ) { $subsequences = []; $length = strlen ( $string ); $total = 1 << $length ; for ( $i = 0; $i < $total ; $i ++) { $subseq = '' ; for ( $j = 0; $j < $length ; $j ++) { if ( $i & (1 << $j )) { $subseq .= $string [ $j ]; } } if (! empty ( $subseq )) { $subsequences [] = $subseq ; } } return $subsequences ; } // Driver code $string = "abc" ; $substrings = getAllSubstrings( $string ); echo "All substrings of '$string':\n" ; print_r( $substrings ); ?> |
All substrings of 'abc': Array ( [0] => a [1] => b [2] => ab [3] => c [4] => ac [5] => bc [6] => abc )
How to Get All Substrings of a Given String in PHP ?
Extracting all possible substrings from a given string is a common task in text processing, pattern recognition, and various other applications in PHP programming. This operation involves generating every possible combination of characters present in the string, including both contiguous and non-contiguous sequences.
A substring is any continuous sequence of characters within a string. For a string of length n, the number of possible substrings is n(n + 1)/2, not counting the empty string. This concept is crucial in many domains, including search operations, data analysis, and when implementing algorithms that process text data.