Java Genomic Range Query
public class Solution {
public static int[] genomicRangeQuery(String s, int[] p, int[] q) {
int[] r = new int[p.length];
for (int k = 0; k < p.length; k++) {
int pi = p[k];
int qi = q[k] - pi + 1;
String subStr = s.substring(pi, pi + qi);
if (subStr.contains("A")) {
r[k] = 1;
} else if (subStr.contains("C")) {
r[k] = 2;
} else if (subStr.contains("G")) {
r[k] = 3;
} else {
r[k] = 4;
}
}
return r;
}
}
This builds prefix counts for each DNA letter so every query can return the minimum impact factor quickly.