I want to find the minimum subsequence. Have I done this correctly or how can it be better? thank you.

Iām not sure I completely understand the objective here? Could you give a little more detail on what this function is supposed to be doing?

determine if primary is a subsequence of secondary

Primary: AB

Secondary: ABC

False

Primary: AB

Secondary: ABAB

True

Primary: ABAB

Secondary: ABABAB

False

If primary is a subsequence of secondary return the minimum of primary that is a subsequence

Primary: ABAB

Secondary: ABABABAB

minimum subsequence: AB

if primary is not a subsequence return negative length of secondary

Ah, I would try to simplify your code. I see this as two phases

- can the second string be made by repeating the first?
- is there any substring of the first that can recreate the first?

I think you can use the function itself to check 2.

## Here is a guess at what might work

```
function findSmallestRepeatedSubsequence(first, second) {
// Check if the second can evenly hold
// multiples of the first
if (second.length % first.length !== 0)
return false;
// Check for repetition of first
for (let i = 0; i < second.length; i += first.length)
if (second.substring(i, i + first.length) != first)
return false;
// Check if smaller subseq will work
for (let i = 1; i <= first.length/2; i++)
if (findSmallestRepeatedSubsequence(first.substring(0, i), first))
return first.substring(0, i);
// No smaller subseq of first will work
return first;
}
```

1 Like

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.