← Catalogo
DNA
PyJS

Counting DNA Nucleotides

String Algorithms

Pagina originale su rosalind.info

Descrizione

Una stringa di DNA è una sequenza ordinata di simboli presi dall'alfabeto {A, C, G, T}. Il problema chiede semplicemente di contare quante volte ciascuno dei quattro nucleotidi compare all'interno di una stringa di DNA data.

Given

Una stringa di DNA s di lunghezza al massimo 1000 nt.

Return

Quattro interi (separati da spazio) che contano rispettivamente il numero di occorrenze dei simboli 'A', 'C', 'G' e 'T' in s.

Sample Dataset

AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC

Sample Output

20 12 17 21

La mia esecuzione

08/24/2026 11:24:47

Input · dataset.txt

CCCAGTGGTCCTGACTAACGGGTACGTTTAGAAGTGCTCAGCAAATAAAAACTAATATAATATAGCACCCCGAGATAACCTATGAGTTGGTTCCCTTTAGCTAGATGGGTATGTTGGTCTTGTGGTCTAACTCTATACCGGATCGTTGAGACTTCACGTCACTGCCTATTATTAACGTCAATGGTGTTACGCGAGATTTGCAGAACGGGTTACTGCATTAATCTGCTATTTAAGTCTGACCACTGCTACTTCCCCGATGTTTTGTCCCCTGATTAGGGACTACATCATTCGTCCTAAATGAAAGGATTATATTATAGGACGATACCGTCGCAAGGCGTTGGAATCCTTCCTCGTAGCGAGATCTTAGGCCCGCCGTCCAAAAGACTAATGCCCGGGGCCTGTTATGCAGGTGGGCGTCATGTGTGATCACACGGTCCAGCTGTTACGGTCTACCATTCAAGTCTCTTGTCCATATGAGACATTCGCGTGGACGCTTTCTAACCGTAAATGAATGTGCCGACGGCATATCGAATCCATCCCCAACTTTGTAACAATAATAGTTTAAGTCTAGCGGCTTCATGCCATGGAGGGGCGAGAGAATACTAGAACTTTGGCCCTGATCCCCGCCTTCCAGTTCGCTCGAAATTAAAGACATGACCCGGTTGTTCAGGAGGAAATGGAGCCATACTACCGAACTACGGATGTAGATTCACCTATTTGGGTTCAGGTTTTGCATCACGAGAATCGCCGCATATAAAATCTCGTGGTGACCCGTACGGGGTCCCTAAGGGCCGAATTCTTACCTTCAGAATATCGCTA

Output · run_log.txt

OK
208 195 189 227

Esegui nel browser · Pyodide

Mostra il codice sorgente (problem.py)
counts = {}
filename = "dataset.txt"
with open(filename) as f:
    riga = f.readline()
for i in range(len(riga)):
    key = riga[i]
    if key in counts:
       counts[key]+=1
    else:   
       counts[key]=1
print("{} {} {} {}".format( counts['A'], counts['C'], counts['G'], counts['T'] ))

Soluzione JavaScript

Esegui ora, live

Mostra il codice sorgente
// Counting DNA Nucleotides (Rosalind ID: DNA) - soluzione JavaScript
// indipendente, non una trascrizione di problem.py: stessa logica di
// conteggio (un contatore per simbolo), 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 riga = datasetText.split("\n")[0].trim();

  const counts = {};
  for (const base of riga) {
    counts[base] = (counts[base] || 0) + 1;
  }

  const missing = ["A", "C", "G", "T"].filter((base) => !(base in counts));
  if (riga.length === 0 || missing.length > 0) {
    throw new Error(
      `Input non valido: attesa una stringa di DNA con almeno una occorrenza di A, C, G, T, ricevuto "${riga}"`
    );
  }

  return `${counts["A"]} ${counts["C"]} ${counts["G"]} ${counts["T"]}\n`;
}