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.