Welcome to Online IDE!! Happy Coding :) This is String(s): bcab This is String(p): abb ***PERMUTATIONS*** nPr (without replacement) String p: abb P(n,r) = n! / (n−r)! P(3,3) = 3! / (3-3)! 6 checking the factorial results to ascertain if: 2 is present ---------------------------------------------------------------- It will perform: 2!=2 due to 2 occurrences of: b CATCH!!!!!!!!!!!!!!: 2 2! = 2 This is: 2! x RUNNING TOTAL (REPETITIONS): 2 2! ****FACTORIAL INFO:********* key: 1 value: 1 key: 2 value: 2 key: 3 value: 6 ***PERMUTATIONS*** nPr (without replacement) WITH REPETITION: String p: abb P(n,r) = n! / (n−r)! / 2! (MULTIPLICATION of factorial of occurrences of each UNIQUE r value in n) P(3,3) = 3! / (3-3)! / 2 = 3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^FINDING PERMUTATION IN STRING S *************INITIAL VALUE OF CYCLES: 0 ******************Contents of the backup set ******************Contents of the valuesSet *************NEW VALUE CYCLES: 4 *************RUNNING TOTAL CYCLES: 4 ***PROCESSING SET AT INDEX: 0 **ENDING AT INDEX:***** 3 THIS IS PERMUTATION (STRING Y): abb THIS IS STRING X: bcab Subsequence analysis row: 0 Checking character: a against String X index: 0(b) Checking character: a against String X index: 1(c) Checking character: a against String X index: 2(a) char found: a at String X index: 2 char found: a at String Y index: 0 a has been removed from StringBuilder (String p)= abb This is current StringBuilder (String p): bb Checking character: b against String X index: 3(b) char found: b at String X index: 3 char found: b at String Y index: 1 b has been removed from StringBuilder (String p)= bb This is current StringBuilder (String p): b ****NOW STORING subsequence length: 2 *************************************************************************************************************************************** **************************************************************************************************************************************** ********************************************************** bcab is NOT a substring containing characters matching permutation: abb Index(0) Following characters unmatched (String X): Length maximum subsequence: 2 Presented window: ab index(2-3) Subsequence: ab Subsequence (index on String Y): a index: (0) b index: (1) ********************************************************** ***************************************************************************************************************************************** ******************************************************************************************************************************************** Following letters require removal (String Y) to support subsequence: b index (2 - 2) (length: 1) Length subsequence: 2 => 2 THIS IS PERMUTATION (STRING Y): abb THIS IS STRING X: cab Subsequence analysis row: 1 Checking character: a against String X index: 1(c) Checking character: a against String X index: 2(a) char found: a at String X index: 2 char found: a at String Y index: 0 a has been removed from StringBuilder (String p)= abb This is current StringBuilder (String p): bb Checking character: b against String X index: 3(b) char found: b at String X index: 3 char found: b at String Y index: 1 b has been removed from StringBuilder (String p)= bb This is current StringBuilder (String p): b ****NOW STORING subsequence length: 2 ********************************************************** cab is NOT a substring containing characters matching permutation: abb Index(1) Following characters unmatched (String X): Length maximum subsequence: 2 Presented window: ab index(2-3) Subsequence: ab Subsequence (index on String Y): a index: (0) b index: (1) ********************************************************** Following letters require removal (String Y) to support subsequence: b index (2 - 2) (length: 1) Length subsequence: 2 => 2 THIS IS PERMUTATION (STRING Y): abb THIS IS STRING X: ab Subsequence analysis row: 2 Checking character: a against String X index: 2(a) char found: a at String X index: 2 char found: a at String Y index: 0 a has been removed from StringBuilder (String p)= abb This is current StringBuilder (String p): bb Checking character: b against String X index: 3(b) char found: b at String X index: 3 char found: b at String Y index: 1 b has been removed from StringBuilder (String p)= bb This is current StringBuilder (String p): b ****NOW STORING subsequence length: 2 ********************************************************** ab is NOT a substring containing characters matching permutation: abb Index(2) Following characters unmatched (String X): Length maximum subsequence: 2 Presented window: ab index(2-3) Subsequence: ab Subsequence (index on String Y): a index: (0) b index: (1) ********************************************************** Following letters require removal (String Y) to support subsequence: b index (2 - 2) (length: 1) Length subsequence: 2 => 2 THIS IS PERMUTATION (STRING Y): abb THIS IS STRING X: b Subsequence analysis row: 3 Checking character: a against String X index: 3(b) ********NO CHARACTERS FROM PERMUTATION TEMPLATE WORD ARE FOUND IN STRING S******** ****NOW STORING subsequence length: 0 ********************************************************** b is NOT a substring containing characters matching permutation: abb Index(3) Following characters unmatched (String X): Length maximum subsequence: 0 Presented window: index(0-3) Subsequence: Subsequence (index on String Y): ********************************************************** STEP OUT-------------------- THIS IS PERMUTATION (STRING Y): bba THIS IS STRING X: bcab Subsequence analysis row: 4 Checking character: b against String X index: 0(b) char found: b at String X index: 0 char found: b at String Y index: 0 b has been removed from StringBuilder (String p)= bba This is current StringBuilder (String p): ba Checking character: b against String X index: 1(c) char NOT found: b at String X index: (1) c Adding: c index(1) as unmatched Adding: bc as running window Checking character: b against String X index: 2(a) char NOT found: b at String X index: (2) a Adding: c index(1) as unmatched a index(2) as unmatched Adding: bca as running window Checking character: b against String X index: 3(b) char found: b at String X index: 3 char found: b at String Y index: 1 b has been removed from StringBuilder (String p)= ba This is current StringBuilder (String p): a ****NOW STORING subsequence length: 2 ********************************************************** bcab is NOT a substring containing characters matching permutation: bba Index(0) Following characters unmatched (String X): c index(1) as unmatched a index(2) as unmatched Length maximum subsequence: 2 Presented window: bcab index(0-3) Subsequence: bb Subsequence (index on String Y): b index: (0) b index: (1) ********************************************************** Following letters require removal (String Y) to support subsequence: a index (2 - 2) (length: 1) Length subsequence: 2 => 2 THIS IS PERMUTATION (STRING Y): bba THIS IS STRING X: cab Subsequence analysis row: 5 Checking character: b against String X index: 1(c) Checking character: b against String X index: 2(a) Checking character: b against String X index: 3(b) char found: b at String X index: 3 char found: b at String Y index: 0 b has been removed from StringBuilder (String p)= bba This is current StringBuilder (String p): ba ****NOW STORING subsequence length: 1 ********************************************************** cab is NOT a substring containing characters matching permutation: bba Index(1) Following characters unmatched (String X): Length maximum subsequence: 1 Presented window: b index(3-3) Subsequence: b Subsequence (index on String Y): b index: (0) ********************************************************** Following letters require removal (String Y) to support subsequence: ba index (1 - 2) (length: 2) Length subsequence: 1 => 1 THIS IS PERMUTATION (STRING Y): bba THIS IS STRING X: ab Subsequence analysis row: 6 Checking character: b against String X index: 2(a) Checking character: b against String X index: 3(b) char found: b at String X index: 3 char found: b at String Y index: 0 b has been removed from StringBuilder (String p)= bba This is current StringBuilder (String p): ba ****NOW STORING subsequence length: 1 ********************************************************** ab is NOT a substring containing characters matching permutation: bba Index(2) Following characters unmatched (String X): Length maximum subsequence: 1 Presented window: b index(3-3) Subsequence: b Subsequence (index on String Y): b index: (0) ********************************************************** Following letters require removal (String Y) to support subsequence: ba index (1 - 2) (length: 2) Length subsequence: 1 => 1 THIS IS PERMUTATION (STRING Y): bba THIS IS STRING X: b Subsequence analysis row: 7 Checking character: b against String X index: 3(b) char found: b at String X index: 3 char found: b at String Y index: 0 b has been removed from StringBuilder (String p)= bba This is current StringBuilder (String p): ba ****NOW STORING subsequence length: 1 ********************************************************** b is NOT a substring containing characters matching permutation: bba Index(3) Following characters unmatched (String X): Length maximum subsequence: 1 Presented window: b index(3-3) Subsequence: b Subsequence (index on String Y): b index: (0) ********************************************************** Following letters require removal (String Y) to support subsequence: ba index (1 - 2) (length: 2) Length subsequence: 1 => 1 STEP OUT-------------------- THIS IS PERMUTATION (STRING Y): bab THIS IS STRING X: bcab Subsequence analysis row: 8 Checking character: b against String X index: 0(b) char found: b at String X index: 0 char found: b at String Y index: 0 b has been removed from StringBuilder (String p)= bab This is current StringBuilder (String p): ab Checking character: a against String X index: 1(c) char NOT found: a at String X index: (1) c Adding: c index(1) as unmatched Adding: bc as running window Checking character: a against String X index: 2(a) char found: a at String X index: 2 char found: a at String Y index: 1 a has been removed from StringBuilder (String p)= ab This is current StringBuilder (String p): b Checking character: b against String X index: 3(b) char found: b at String X index: 3 char found: b at String Y index: 2 b has been removed from StringBuilder (String p)= b This is current StringBuilder (String p): ****NOW STORING subsequence length: 3 ********************************************************** bcab is a PERFECT substring containing characters matching permutation: bab Index(0) Following characters unmatched: c index(1) as unmatched Length maximum subsequence: 3 Presented window (String X): bcab index(0-3) Subsequence: bab Subsequence (index on String Y): b index: (0) a index: (1) b index: (2) ********************************************************** THIS IS PERMUTATION (STRING Y): bab THIS IS STRING X: cab Subsequence analysis row: 9 Checking character: b against String X index: 1(c) Checking character: b against String X index: 2(a) Checking character: b against String X index: 3(b) char found: b at String X index: 3 char found: b at String Y index: 0 b has been removed from StringBuilder (String p)= bab This is current StringBuilder (String p): ab ****NOW STORING subsequence length: 1 ********************************************************** cab is NOT a substring containing characters matching permutation: bab Index(1) Following characters unmatched (String X): Length maximum subsequence: 1 Presented window: b index(3-3) Subsequence: b Subsequence (index on String Y): b index: (0) ********************************************************** Following letters require removal (String Y) to support subsequence: ab index (1 - 2) (length: 2) Length subsequence: 1 => 1 THIS IS PERMUTATION (STRING Y): bab THIS IS STRING X: ab Subsequence analysis row: 10 Checking character: b against String X index: 2(a) Checking character: b against String X index: 3(b) char found: b at String X index: 3 char found: b at String Y index: 0 b has been removed from StringBuilder (String p)= bab This is current StringBuilder (String p): ab ****NOW STORING subsequence length: 1 ********************************************************** ab is NOT a substring containing characters matching permutation: bab Index(2) Following characters unmatched (String X): Length maximum subsequence: 1 Presented window: b index(3-3) Subsequence: b Subsequence (index on String Y): b index: (0) ********************************************************** Following letters require removal (String Y) to support subsequence: ab index (1 - 2) (length: 2) Length subsequence: 1 => 1 THIS IS PERMUTATION (STRING Y): bab THIS IS STRING X: b Subsequence analysis row: 11 Checking character: b against String X index: 3(b) char found: b at String X index: 3 char found: b at String Y index: 0 b has been removed from StringBuilder (String p)= bab This is current StringBuilder (String p): ab ****NOW STORING subsequence length: 1 ********************************************************** b is NOT a substring containing characters matching permutation: bab Index(3) Following characters unmatched (String X): Length maximum subsequence: 1 Presented window: b index(3-3) Subsequence: b Subsequence (index on String Y): b index: (0) ********************************************************** Following letters require removal (String Y) to support subsequence: ab index (1 - 2) (length: 2) Length subsequence: 1 => 1 STEP OUT-------------------- FINISHED ALL PERMUTATIONS!!!!!!!! NUMBER ROWS DATA: 12 Processing row: 0 of subsequence data CHECK1: null CHECK2: ab index(2-3) is a substring NOT containing characters matching permutation: abb(Window size: 2) ab index(2-3) is a substring NOT containing characters matching permutation: abb(Window size: 2) Following characters unmatched: Length maximum subsequence: 2 subsequence: a index(2) b index(3) Presented window (String X): ab Subsequence: ab Subsequence (index on String Y): a index: (0) b index: (1) Processing row: 1 of subsequence data CHECK1: ab index(2-3) is a substring NOT containing characters matching permutation: abb(Window size: 2) CHECK2: ab index(2-3) is a substring NOT containing characters matching permutation: abb(Window size: 2) Processing row: 2 of subsequence data CHECK1: ab index(2-3) is a substring NOT containing characters matching permutation: abb(Window size: 2) CHECK2: ab index(2-3) is a substring NOT containing characters matching permutation: abb(Window size: 2) ************************************************************************************************************************************ ************************************************************************************************************************************ ************************************************************************************************************************************ ************************************************************************************************************************************ Processing row: 3 of subsequence data CHECK1: ab index(2-3) is a substring NOT containing characters matching permutation: abb(Window size: 2) CHECK2: bcab index(0-3) is a substring NOT containing characters matching permutation: abb(Window size: 4) bcab index(0-3) is a substring NOT containing characters matching permutation: abb(Window size: 4) Following characters unmatched: Length maximum subsequence: 0 subsequence: Presented window (String X): Subsequence: Subsequence (index on String Y): ************************************************************************************************************************************ ************************************************************************************************************************************ ************************************************************************************************************************************ ************************************************************************************************************************************ Processing row: 4 of subsequence data CHECK1: bcab index(0-3) is a substring NOT containing characters matching permutation: abb(Window size: 4) CHECK2: bcab index(0-3) is a substring NOT containing characters matching permutation: bba(Window size: 4) bcab index(0-3) is a substring NOT containing characters matching permutation: bba(Window size: 4) Following characters unmatched: c index(1) as unmatched a index(2) as unmatched Length maximum subsequence: 2 subsequence: b index(0) b index(3) Presented window (String X): bcab Subsequence: bb Subsequence (index on String Y): b index: (0) b index: (1) Processing row: 5 of subsequence data CHECK1: bcab index(0-3) is a substring NOT containing characters matching permutation: bba(Window size: 4) CHECK2: b index(3-3) is a substring NOT containing characters matching permutation: bba(Window size: 1) b index(3-3) is a substring NOT containing characters matching permutation: bba(Window size: 1) Following characters unmatched: Length maximum subsequence: 1 subsequence: b index(3) Presented window (String X): b Subsequence: b Subsequence (index on String Y): b index: (0) Processing row: 6 of subsequence data CHECK1: b index(3-3) is a substring NOT containing characters matching permutation: bba(Window size: 1) CHECK2: b index(3-3) is a substring NOT containing characters matching permutation: bba(Window size: 1) Processing row: 7 of subsequence data CHECK1: b index(3-3) is a substring NOT containing characters matching permutation: bba(Window size: 1) CHECK2: b index(3-3) is a substring NOT containing characters matching permutation: bba(Window size: 1) Processing row: 8 of subsequence data CHECK1: b index(3-3) is a substring NOT containing characters matching permutation: bba(Window size: 1) CHECK2: bcab index(0-3) is a substring NOT containing characters matching permutation: bab(Window size: 4) bcab index(0-3) is a substring NOT containing characters matching permutation: bab(Window size: 4) Following characters unmatched: c index(1) as unmatched Length maximum subsequence: 3 subsequence: b index(0) a index(2) b index(3) Presented window (String X): bcab Subsequence: bab Subsequence (index on String Y): b index: (0) a index: (1) b index: (2) Processing row: 9 of subsequence data CHECK1: bcab index(0-3) is a substring NOT containing characters matching permutation: bab(Window size: 4) CHECK2: b index(3-3) is a substring NOT containing characters matching permutation: bab(Window size: 1) b index(3-3) is a substring NOT containing characters matching permutation: bab(Window size: 1) Following characters unmatched: Length maximum subsequence: 1 subsequence: b index(3) Presented window (String X): b Subsequence: b Subsequence (index on String Y): b index: (0) Processing row: 10 of subsequence data CHECK1: b index(3-3) is a substring NOT containing characters matching permutation: bab(Window size: 1) CHECK2: b index(3-3) is a substring NOT containing characters matching permutation: bab(Window size: 1) Processing row: 11 of subsequence data CHECK1: b index(3-3) is a substring NOT containing characters matching permutation: bab(Window size: 1) CHECK2: b index(3-3) is a substring NOT containing characters matching permutation: bab(Window size: 1) This is current longest subsequence: 0 This is final maximum window: 3 -----------------LONGEST SUBSEQUENCE (STRING Y IN STRING X) Following characters unmatched: c index(1) as unmatched Length maximum subsequence: 3 Presented window (String X): bcab Subsequence: bab Subsequence (index on String Y): b index: (0) a index: (1) b index: (2) bcab index(0-3) is a substring(String X) with subsequence permutation (String Y): bab Window size: 4) ** Process exited - Return Code: 0 **