-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAll_Includes.js
31 lines (24 loc) · 863 Bytes
/
All_Includes.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/*a string strng
an array of strings arr
Output of function contain_all_rots(strng, arr) (or containAllRots or contain-all-rots):
a boolean true if all rotations of strng are included in arr
false otherwise
Examples:
contain_all_rots(
"bsjq", ["bsjq", "qbsj", "sjqb", "twZNsslC", "jqbs"]) -> true
contain_all_rots(
"Ajylvpy", ["Ajylvpy", "ylvpyAj", "jylvpyA", "lvpyAjy", "pyAjylv", "vpyAjyl", "ipywee"]) -> false)
Note:
Though not correct in a mathematical sense
we will consider that there are no rotations of strng == ""
and for any array arr: contain_all_rots("", arr) --> true
Ref: https://en.wikipedia.org/wiki/String_(computer_science)#Rotations
*/
function containAllRots(str, arr) {
for (var i = 0; i < str.length; i++) {
if (arr.indexOf(str.slice(i) + str.slice(0, i)) === -1) {
return false
}
}
return true
}