Skip to content

Instantly share code, notes, and snippets.

@dinob0t
Created February 18, 2014 10:26
Show Gist options
  • Save dinob0t/9068266 to your computer and use it in GitHub Desktop.
Save dinob0t/9068266 to your computer and use it in GitHub Desktop.
A faster CracklePop code
clear all
clc
fasterTic = tic;
crackleString = 'Crackle';
popString = 'Pop';
cracklePopString = 'CracklePop';
numberArray = (1:n);
stringArrayColSize = max([length(n) length(crackleString) ...
length(cracklePopString) length(popString)])+1;
spaceArray = char(ones(1,stringArrayColSize-1).*32);
spaceArrayLength = length(spaceArray);
spaceCracklePopString = spaceArray;
spaceCracklePopString(spaceArrayLength - ...
length(cracklePopString)+1:spaceArrayLength) = cracklePopString;
spaceCrackleString = spaceArray;
spaceCrackleString(spaceArrayLength - ...
length(crackleString)+1:spaceArrayLength) = crackleString;
spacePopString = spaceArray;
spacePopString(spaceArrayLength - ...
length(popString)+1:spaceArrayLength) = popString;
stringArray = sprintf(['%' num2str(stringArrayColSize-1) ...
'i\n'],numberArray);
crackleMods = mod(numberArray,3);
popMods = mod(numberArray,5);
cracklePopMods = crackleMods+popMods;
crackleIndex = find(crackleMods==0);
popIndex = find(popMods==0);
cracklePopIndex = find(cracklePopMods==0);
for i = 1:spaceArrayLength
stringArray(((crackleIndex).*stringArrayColSize)-i ) = ...
spaceCrackleString(spaceArrayLength-i+1);
end
for i = 1:spaceArrayLength
stringArray(((popIndex).*stringArrayColSize)-i ) = ...
spacePopString(spaceArrayLength-i+1);
end
for i = 1:spaceArrayLength
stringArray(((cracklePopIndex).*stringArrayColSize)-i ) = ...
spaceCracklePopString(spaceArrayLength-i+1);
end
disp(stringArray)
fasterTime = toc(fasterTic);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment