(Non sono un chimico! Potrei sbagliarmi su alcune cose, sto scrivendo quello che ho imparato al liceo)
Gli atomi di carbonio hanno un attributo speciale: possono legarsi ad altri 4 atomi (che non è così speciale) e rimangono stabili anche nelle lunghe catene, il che è davvero unico. Poiché possono essere concatenati e combinati in molti modi diversi, abbiamo bisogno di una sorta di convenzione di denominazione per nominarli.
Questa è la molecola più piccola che possiamo fare:
CH4
Si chiama metano. È costituito da un solo carbonio e 4 atomi di idrogeno. Il prossimo è:
CH3 - CH3
Questo si chiama etano. È composto da 2 atomi di carbonio e 6 di idrogeno.
I prossimi 2 sono:
CH3 - CH2 - CH3
CH3 - CH2 - CH2 - CH3
Sono propano e butano. I problemi iniziano con le catene con 4 atomi di carbonio, in quanto possono essere costruite in 2 modi diversi. Uno è mostrato sopra e l'altro è:
CH3 - CH - CH3
|
CH3
Questo ovviamente non è uguale all'altro. Il numero di atomi e legami sono diversi. Ovviamente solo piegare i legami e ruotare la molecola non la renderà diversa! Così questo:
CH3 - CH2 - CH2 - CH3
E questo:
CH3 - CH2
|
CH3 - CH2
Sono gli stessi (se ti piace la teoria dei grafi, puoi dire che se c'è isomorfismo tra 2 molecole; sono le stesse). D'ora in poi non scriverò gli atomi di idrogeno in quanto non sono essenziali per questa sfida.
Dato che odi la chimica organica e hai molti atomi di carbonio diversi da nominare, decidi di scrivere un programma che fa questo per te. Non hai troppo spazio sul tuo disco rigido, quindi il programma deve essere il più piccolo possibile.
La sfida
Scrivi un programma che includa un testo a più righe come input (una catena di carbonio) e produca il nome della catena di carbonio. L'input conterrà solo spazi, caratteri "c" maiuscoli e "|" e '-' che rappresenta un'associazione. La catena di input non conterrà mai cicli! Esempio:
Ingresso:
C-C-C-C-C-C
| |
C C-C
Produzione:
4-etil-2-metilesano
Qualsiasi output è accettabile purché sia leggibile dall'uomo ed essenzialmente lo stesso (quindi è possibile utilizzare diversi separatori, ad esempio, se lo si desidera).
La convenzione di denominazione:
(Vedi: regole IUPAC )
Individua la catena di carbonio più lunga. Questa catena è chiamata catena padre.
Identificare tutti i sostituenti (gruppi aggiunti dalla catena madre).
Numera i carboni della catena madre dall'estremità che fornisce ai sostituenti il numero più basso. Quando si confrontano una serie di numeri, la serie che è il "più basso" è quella che contiene il numero più basso in occasione della prima differenza. Se due o più catene laterali si trovano in posizioni equivalenti, assegnare il numero più basso a quello che verrà per primo nel nome.
Se lo stesso sostituente si verifica più di una volta, viene indicata la posizione di ciascun punto in cui si trova il sostituente. Inoltre, il numero di volte in cui si verifica il gruppo sostituente è indicato da un prefisso (di, tri, tetra, ecc.).
Se ci sono due o più sostituenti diversi, questi sono elencati in ordine alfabetico usando il nome di base (ignora i prefissi). L'unico prefisso che viene usato quando si mettono i sostituenti in ordine alfabetico è iso come in isopropyl o isobutyl. I prefissi sec- e tert- non vengono utilizzati per determinare l'ordine alfabetico, tranne se confrontati tra loro.
Se catene di uguale lunghezza sono in competizione per la selezione come catena madre, la scelta passa in serie a:
- la catena che ha il maggior numero di catene laterali.
- la catena i cui sostituenti hanno il numero più basso.
- la catena che ha il maggior numero di atomi di carbonio nella catena laterale più piccola.
- la catena con le catene laterali meno ramificate (un grafico con il minor numero di foglie).
Per la catena padre, la denominazione è:
Number of carbons Name
1 methane
2 ethane
3 propane
4 butane
5 pentane
6 hexane
7 heptane
8 octane
9 nonane
10 decane
11 undecane
12 dodecane
Nessuna catena sarà più lunga di 12, quindi questo sarà sufficiente. Per le sotto-catene è lo stesso ma invece di "ane" alla fine abbiamo "yl".
Puoi presumere che le C
s siano nelle colonne dispari e che le associazioni ( |
e i -
caratteri) siano lunghe 1 tra gli atomi di carbonio.
Casi test:
Ingresso:
C-C-C-C
Produzione:
butano
Ingresso:
C-C-C
|
C
Produzione:
2-metilpropano
Ingresso:
C-C-C-C
|
C
|
C-C
Produzione:
3-metilesano
Ingresso:
C-C-C-C-C
|
C
|
C
Produzione:
3-metilesano
Ingresso:
C
|
C
|
C-C-C-C
|
C-C-C
|
C-C
Produzione:
3,4-dimetil-5-ethylheptane
Modifica: scusate gli esempi sbagliati. Non ero un bravo studente :(. Dovrebbero essere riparati ora.
If the same substituent occurs more than once, the location of each point on which the substituent occurs is given. In addition, the number of times the substituent group occurs is indicated by a prefix (di, tri, tetra, etc.).
l'ultimo esempio non dovrebbe essere chiamato 3,4- di metil-5-etilesano? (stiamo iniziando la chimica organica, potrei sbagliarmi: P)