← Catalogo
HAMM
PyJS

Counting Point Mutations

Alignment

Pagina originale su rosalind.info

Descrizione

Date due stringhe s e t della stessa lunghezza, la distanza di Hamming tra loro è il numero di posizioni corrispondenti in cui i simboli differiscono. Rappresenta il numero minimo di mutazioni puntiformi che possono aver separato due sequenze omologhe nel corso dell'evoluzione.

Given

Due stringhe di DNA s e t di uguale lunghezza (non superiore a 1 kbp).

Return

La distanza di Hamming tra s e t.

Sample Dataset

GAGCCTACTAACGGGAT
CATCGTAATGACGGCCT

Sample Output

7

La mia esecuzione

08/24/2026 11:24:47

Input · dataset.txt

CAACACTTTAGCATCCAGTCCATCTTTTATGACTCCGGGTCTCGTCAATTCGCACACTACTCAGAGCCGTTTCCTGTGGTTATCCCTAGGTCGCTCGTGGCTTTTGCTGAATACGACAAGGATTCTGTGGGAGGGCCGGTAATGCACCAAAGAAAACCCCTACGATCGTTTGTAGCATTGAAGTATTCGCGCGGAAAATGAACAGCTAAAACCTAAGGGACTAGACTTGCACCACCGTGTTCAGCGAAATTCCGTACTAACCTCGTGTATTGAGTCCCTTCCCTTCATCCCTGTCAACTAGTTTGATCTGGCCAGAGCGTTGCTGAGGATTAGCATCTCGGGTCAATACAGCATTATGCTCGTTCATTAAACTCGTTTTTGCACGGCGCAACACATGGACTATGAGGTGATTTAGGAGACAATTCCCCTAGGCTCATGTGGTTCAGCAAGTGGTGCCAAAGTTAACATAAATATTGTGACTTGTCTAATAACCGCATATTAAAGAGGTATCGCCAGTAATCGCTGGACATTCCACTCCCTTGATATACGAGAAATAGCAAATCCGCGGGTTCGACAGGCGTCTGTCTGCTTTACGATACGGTTGGGCGATATCTCGGGTGCATGCGCTTAGTTGGTGGATCTGCAGCCAATCTGCACAGGAGTGGATAGACGTATCCTCGTGATGGAGCACAGCAAATCCGCAAATCATCCTACATTTGATCGAACTGGGCCGTCGTAATTAGTTCCGCCGTATAGACAAACTCTCGAGATATGACACGCCCAGCATTAGATTAGATGATAAATCCAGACTTGAGCACCTTCACTAAGTAAGCTTGGGTAATTCTCTACTAATAGATCATCGAGCCTTTAAACCGGGCAGGGCATAGCCAATCAAACTCGAGCCCGTCACGGTTTAATA
CGAGCCTCGACCAACGAGGTAGGTCCTGTCGAATCCGGCTCTAGTGAACCTCATCTCTATGTGAACCCATGTGATGGGTTGATCCCTTCGCCGCTTGCATCTATAGCTTCTGAGCCGATTAATCTCAAGACAAAGGCGGGACTCGTAAATAGGATATCAGATTAAACATTGGTAGCCCCGTAGTAGTAGCGGGTAAAAACACCACCTTTGACAGAAGGAACACCTCTCGTTTTATCGTGTTTCCTGACGATCCGTAGATACCCCGACCGAGCCCTCGTAACTAATCTCCGGAAGTATGTGATTTGGTCTGACCAAAGTGGCATGTGCGATGGGCATGTCTTGACTTTTCACAGGACCGACGGGCCATTCAACCCAGATAGGCAGTGTGCAATCATCGGACACTAAGGTAACTTGCGTCACGTGTTCGAAATGCAGCTCAGGTGCGCGGAGAGTAGTGAAGGACGATAACACATATGCAACCCGTCAGGCTTCTATTTTTCGGTGACATATCATCATCAAAAGGGGCACTGGTTGATGCAGGCGTATCCAGAAAACATCGGATTCGCATGACACTGAAGCAATCATCTGCGTTGCAACAGGTTTGGGTCATATCCTGGATCCCAAGACTGATCAGGTTTGGCTCCAACCACTATGCTCTTTTATCGAAAGAGACATCCAAAGGATCGATGAAAACAGGTTCGAAACTTATTTTTTACTTCCGCGCTCGGGCTCGAAGCCGTCTGGTCGACCGTATGAACACACGTACCAGATTTGAACGCGGATTTCGCCGCAGGTGTGCAAGATCGTGTGCTTAGGAATCTGATGCGGGCGGGTTCGTTAACATATAACCGCCAGACCACTTAACCAGCACTCTGGGCCAAGTCAGGGTAATCCAACTCCAGCCCGCCGCGGACTAGCA

Output · run_log.txt

OK
485

Esegui nel browser · Pyodide

Mostra il codice sorgente (problem.py)
filename = "dataset.txt"
with open(filename) as f:
    a = f.readline()
    b = f.readline()
tot = 0
for i in range(len(a)):
    if a[i] != b[i]:
    	  tot += 1
print(tot)

Soluzione JavaScript

Esegui ora, live

Mostra il codice sorgente
// Counting Point Mutations (Rosalind ID: HAMM) - soluzione JavaScript
// indipendente, non una trascrizione di problem.py: stessa logica
// (distanza di Hamming tra due stringhe di uguale lunghezza), riscritta
// in modo idiomatico per JS.
//
// Contratto: riceve il contenuto testuale di dataset.txt, restituisce
// l'output testuale (stessa forma dell'output Python).
export default function solve(datasetText) {
  const [a, b] = datasetText.split("\n").map((riga) => riga.trim());

  if (!a || !b) {
    throw new Error(
      `Input non valido: attese due righe non vuote, ricevuto "${datasetText.trim()}"`
    );
  }
  if (a.length !== b.length) {
    throw new Error(
      `Input non valido: le due stringhe devono avere la stessa lunghezza (${a.length} vs ${b.length})`
    );
  }

  let tot = 0;
  for (let i = 0; i < a.length; i++) {
    if (a[i] !== b[i]) tot++;
  }

  return `${tot}\n`;
}