Javascript program has something wrong ,I don’t know why the length of log is not 10?
the input s :
const s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"
var findRepeatedDnaSequences = function(s) {
var set = new Set()
var seqSet = new Set()
for (let i = 0; i < s.length - 11; i++) {
let sub = s.substr(i, i + 10)
console.log(sub)
if (set.has(sub)) {
seqSet.add(sub)
} else {
set.add(sub)
}
}
return Array.from(set)
};
findRepeatedDnaSequences(s)
the console result:Javascript program has something wrong ,I don’t know why the length of log is not 10?
AAAAACCCCC
AAAACCCCCAA
AAACCCCCAAAA
AACCCCCAAAAAC
ACCCCCAAAAACCC
CCCCCAAAAACCCCC
CCCCAAAAACCCCCCA
CCCAAAAACCCCCCAAA
CCAAAAACCCCCCAAAAA
CAAAAACCCCCCAAAAAGG
AAAAACCCCCCAAAAAGGGT
AAAACCCCCCAAAAAGGGTTT
AAACCCCCCAAAAAGGGTTT
AACCCCCCAAAAAGGGTTT
ACCCCCCAAAAAGGGTTT
CCCCCCAAAAAGGGTTT
CCCCCAAAAAGGGTTT
CCCCAAAAAGGGTTT
CCCAAAAAGGGTTT
CCAAAAAGGGTTT
CAAAAAGGGTTT
>Solution :
The arguments you’re giving to substr() are appropriate for substring(). Since substr() is deprecated, you should just change to substring() and you’ll get the results you want.
const s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"
var findRepeatedDnaSequences = function(s) {
var set = new Set()
var seqSet = new Set()
for (let i = 0; i < s.length - 11; i++) {
let sub = s.substring(i, i + 10)
console.log(sub)
if (set.has(sub)) {
seqSet.add(sub)
} else {
set.add(sub)
}
}
return Array.from(set)
};
findRepeatedDnaSequences(s)