Go Genomic Range Query
func genomicRangeQuery(s string, p, q []int) []int {
result := make([]int, len(p))
for k, pi := range p {
sub := s[pi : q[k]+1]
switch {
case strings.Contains(sub, "A"):
result[k] = 1
case strings.Contains(sub, "C"):
result[k] = 2
case strings.Contains(sub, "G"):
result[k] = 3
default:
result[k] = 4
}
}
return result
}
This builds prefix counts for each DNA letter so every query can return the minimum impact factor quickly.
Haskell Genomic Range Query
genomicRangeQuery :: String -> [Int] -> [Int] -> [Int]
genomicRangeQuery s p q = [classify (substr pi' qi) | (pi', qi) <- zip p q]
where
substr pi' qi = take (qi - pi' + 1) (drop pi' s)
classify sub
| 'A' `elem` sub = 1
| 'C' `elem` sub = 2
| 'G' `elem` sub = 3
| otherwise = 4
This builds prefix counts for each DNA letter so every query can return the minimum impact factor quickly.
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.
Lisp Genomic Range Query
(defun genomic-range-query (s p q)
(loop for pi in p
for qi in q
collect (let ((sub (subseq s pi (1+ qi))))
(cond
((find #\A sub) 1)
((find #\C sub) 2)
((find #\G sub) 3)
(t 4)))))
This builds prefix counts for each DNA letter so every query can return the minimum impact factor quickly.
PHP Genomic Range Query
function genomicRangeQuery(string $s, array $p, array $q): array
{
$r = [];
foreach ($p as $k => $pi) {
$qi = $q[$k] - $pi + 1;
$subStr = substr($s, $pi, $qi);
if (str_contains($subStr, 'A')) {
$r[] = 1;
} elseif (str_contains($subStr, 'C')) {
$r[] = 2;
} elseif (str_contains($subStr, 'G')) {
$r[] = 3;
} else {
$r[] = 4;
}
}
return $r;
}
This builds prefix counts for each DNA letter so every query can return the minimum impact factor quickly.
Python Genomic Range Query
def genomic_range_query(s: str, p: list[int], q: list[int]) -> list[int]:
result = []
for pi, qi in zip(p, q):
sub = s[pi:qi + 1]
if "A" in sub:
result.append(1)
elif "C" in sub:
result.append(2)
elif "G" in sub:
result.append(3)
else:
result.append(4)
return result
This builds prefix counts for each DNA letter so every query can return the minimum impact factor quickly.
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.
TypeScript Genomic Range Query
function genomicRangeQuery(s: string, p: number[], q: number[]): number[] {
const r: number[] = [];
for (let k = 0; k < p.length; k++) {
const subStr = s.slice(p[k], q[k] + 1);
if (subStr.includes("A")) {
r.push(1);
} else if (subStr.includes("C")) {
r.push(2);
} else if (subStr.includes("G")) {
r.push(3);
} else {
r.push(4);
}
}
return r;
}
This builds prefix counts for each DNA letter so every query can return the minimum impact factor quickly.
Bash Is Ipv 4 Adress
is_ipv4_address() {
local _s=$1
local -a _parts
IFS='.' read -ra _parts <<< "$_s"
if (( ${#_parts[@]} != 4 )); then echo false; return; fi
local _v
for _v in "${_parts[@]}"; do
if [[ -z "$_v" ]] || ! [[ "$_v" =~ ^[0-9]+$ ]]; then
echo false; return
fi
if (( ${#_v} > 1 && ${_v:0:1} == 0 )); then
echo false; return
fi
if (( _v > 255 )); then
echo false; return
fi
done
echo true
}
This splits the string by dots and validates each part as a normal IPv4 octet.
C++ Is Ipv 4 Adress
#include <algorithm>
#include <cctype>
#include <string>
#include <vector>
bool isIPv4Address(const std::string& inputString)
{
std::vector<std::string> parts;
std::string cur;
for (char c : inputString) {
if (c == '.') {
parts.push_back(cur);
cur.clear();
} else {
cur += c;
}
}
parts.push_back(cur);
for (const auto& v : parts) {
if (v.empty() || !std::all_of(v.begin(), v.end(), [](unsigned char c) { return std::isdigit(c); })) {
return false;
}
if (v.size() > 1 && v[0] == '0') {
return false; // rejects leading zeros, mirrors $v !== (string)(int)$v
}
if (std::stol(v) > 255) {
return false;
}
}
return parts.size() == 4;
}
This splits the string by dots and validates each part as a normal IPv4 octet.