MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

# Solution 184109

Submitted on 2 Jan 2013 by Richard Zapor

Correct

8Size
`This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.`

### Test Suite

Test
Code Input and Output
1
Pass

```%%
feval(@assignin,'caller','score',100);
```

2
Pass

```%%
tic
urlwrite('http://rmatlabtest.appspot.com/testsuite_GeneSeq_contest.mat','testsuite_GeneSeq_contest.mat')
toc
```
```ans =
/users/msssystem15/testsuite_GeneSeq_contest.mat
Elapsed time is 0.716061 seconds.
```
3
Pass

```%%
cases=size(testsuite,2);
Result=zeros(cases,3);
for i=1:27 % Practice runs
segments=testsuite{i};
solution = geneseq(segments);
end % i cases
for i=1:29 %1:29 %cases
segments=testsuite{i};
t0 = cputime;
solution = geneseq(segments); % 99.998065  51667.47  0.452
time_elapsed = cputime-t0;
% Check = checksequence(segments,solution);
Check=1;
for ichk = 1:size(segments,1)
if isempty(findstr(segments(ichk,:),solution))
Check=0;
break
end
end
if Check == 1
Result(i,1) = length(solution);
Result(i,2) = time_elapsed;
Result(i,3) = length(OriginalGene);
else
Result(i,:) = Inf;
end
end % i cases
fprintf('Net Time=%10.6f\n',sum(Result(:,2)))
fprintf('Result= %10.6f\n',100*sum(Result(:,1))/sum(Result(:,3)))
v=1000*(sum(Result(:,1)./Result(:,3))/size(Result,1)-1)+ sum(Result(:,2))*10;
fprintf('Final Score %.2f\n',v)
fprintf('L %5i Time %7.3f  L_orig %5i\n',Result')
assert(max(Result(:,1))< Inf)
feval( @assignin,'caller','score',floor(min( 100,v )) );
```
```Net Time=  0.930000
Result=  99.998065
Final Score 8.94
L    65 Time   0.010  L_orig    65
L    65 Time   0.000  L_orig    65
L    65 Time   0.000  L_orig    65
L   100 Time   0.010  L_orig   100
L   100 Time   0.000  L_orig   100
L   100 Time   0.000  L_orig   100
L    65 Time   0.010  L_orig    65
L    65 Time   0.000  L_orig    65
L    65 Time   0.000  L_orig    65
L   100 Time   0.000  L_orig   100
L   100 Time   0.000  L_orig   100
L   100 Time   0.010  L_orig   100
L   100 Time   0.000  L_orig   100
L   100 Time   0.000  L_orig   100
L   100 Time   0.000  L_orig   100
L    67 Time   0.010  L_orig    67
L    96 Time   0.000  L_orig    97
L    37 Time   0.000  L_orig    37
L    37 Time   0.010  L_orig    37
L    67 Time   0.000  L_orig    67
L    97 Time   0.000  L_orig    97
L   400 Time   0.020  L_orig   400
L   200 Time   0.010  L_orig   200
L   100 Time   0.000  L_orig   100
L    10 Time   0.000  L_orig    10
L    26 Time   0.000  L_orig    26
L  5000 Time   0.110  L_orig  5000
L 20789 Time   0.280  L_orig 20789
L 23456 Time   0.450  L_orig 23456
```