Rust Genomic Range Query
fn genomic_range_query(s: &str, p: &[usize], q: &[usize]) -> Vec<i64> {
let chars: Vec<char> = s.chars().collect();
p.iter()
.zip(q.iter())
.map(|(&pi, &qi)| {
let sub = &chars[pi..=qi];
if sub.contains(&'A') {
1
} else if sub.contains(&'C') {
2
} else if sub.contains(&'G') {
3
} else {
4
}
})
.collect()
}
This builds prefix counts for each DNA letter so every query can return the minimum impact factor quickly.