How to resolve the algorithm Non-continuous subsequences step by step in the AutoHotkey programming language
How to resolve the algorithm Non-continuous subsequences step by step in the AutoHotkey programming language
Table of Contents
Problem Statement
Consider some sequence of elements. (It differs from a mere set of elements by having an ordering among members.) A subsequence contains some subset of the elements of this sequence, in the same order. A continuous subsequence is one in which no elements are missing between the first and last elements of the subsequence. Note: Subsequences are defined structurally, not by their contents. So a sequence a,b,c,d will always have the same subsequences and continuous subsequences, no matter which values are substituted; it may even be the same value.
Task: Find all non-continuous subsequences for a given sequence.
For the sequence 1,2,3,4, there are five non-continuous subsequences, namely:
There are different ways to calculate those subsequences. Demonstrate algorithm(s) that are natural for the language.
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Non-continuous subsequences step by step in the AutoHotkey programming language
Source code in the autohotkey programming language
MsgBox % noncontinuous("a,b,c,d,e", ",")
MsgBox % noncontinuous("1,2,3,4", ",")
noncontinuous(list, delimiter)
{
stringsplit, seq, list, %delimiter%
n := seq0 ; sequence length
Loop % x := (1<<n) - 1 { ; try all 0-1 candidate sequences
If !RegExMatch(b:=ToBin(A_Index,n),"^0*1*0*$") { ; drop continuous subsequences
Loop Parse, b
t .= A_LoopField ? seq%A_Index% " " : "" ; position -> number
t .= "`n" ; new sequences in new lines
}
}
return t
}
ToBin(n,W=16) { ; LS W-bits of Binary representation of n
Return W=1 ? n&1 : ToBin(n>>1,W-1) . n&1
}
You may also check:How to resolve the algorithm Filter step by step in the Common Lisp programming language
You may also check:How to resolve the algorithm Factorial step by step in the Aime programming language
You may also check:How to resolve the algorithm Permutations/Derangements step by step in the C++ programming language
You may also check:How to resolve the algorithm Random number generator (included) step by step in the Euler Math Toolbox programming language
You may also check:How to resolve the algorithm Singleton step by step in the Groovy programming language