Not much to comment. The code and output dump should speak for themselves.
PHP Code:
function findPatterns(theString)
{
sendrpgmessage("String: \"" @ theString @ "\"");
sendrpgmessage("Init at approximately " @ timevar2);
temp.oldTime = timevar2;
temp.patterns = {};
for (temp.length=2; temp.length<temp.theString.length(); temp.length++) {
for (temp.position=0; temp.position<temp.theString.length() - temp.length + 1; temp.position++) {
temp.pattern = temp.theString.substring(temp.position, temp.length);
temp.("pattern_" @ temp.pattern)++;
//Makes iteration through the variables much easier.
if (temp.("pattern_" @ temp.pattern) == 1) temp.patterns.add(temp.pattern);
}
}
//Output
temp.output = {};
for (temp.pattern: temp.patterns) {
if (temp.("pattern_" @ temp.pattern) > 1) {
temp.output.add({temp.pattern, temp.("pattern_" @ temp.pattern)});
sendrpgmessage(temp.pattern @ ": " @ temp.("pattern_" @ temp.pattern));
}
}
temp.deltaTime = timevar2 - temp.oldTime;
sendrpgmessage("Finished at " @ timevar2 @ "\nDelta time is " @ temp.deltaTime);
return temp.output;
}
PHP Code:
String: "AUGCCCGTAUACGTA"
Init at approximately 1206544145.230022907
AU: 2
CC: 2
CG: 2
GT: 2
TA: 2
CGT: 2
GTA: 2
CGTA: 2
Finished at 1206544145.231662034
Delta time is 0.001600027