backstory
Bir kimya laboratuvarında başım dönüyor ve eski bir deli kimyager tarafından kaçırıldığınızı anlıyorsunuz. Yaşından dolayı çok iyi göremediği için onun için çalışmanı istiyor ve ancak o zaman laboratuvardan kaçabilirsin.
Görev
Kimyasal formülü girdi olarak verilecek moleküllerin yapısal formüllerini iade etmek sizin görevinizdir . Giriş olarak yalnızca karbon ( ), oksijen ( ) ve hidrojen ( ) atomlarının kullanılacağını unutmayın. Kimyasal formüllerin aksine , a geçerli bir nicelik belirtecidir ve bir atlanamaz (örn . Geçerli girdi, ancak değil).C
O
H
0
1
C1H4O0
CH4
Belirsizliği önlemek için moleküllerde çift ve üçlü bağların görünmediğini varsayıyoruz. Tüm karbon atomları 4 tekli bağa, tüm oksijen atomları 2'ye ve hidrojen atomları bir taneye ihtiyaç duyar. Ayrıca O-O
tahvillerin de olmadığını varsayıyoruz . Molekülün var olması veya stabil olması gerekmez.
Giriş 3
, çıkış ekranında hafiflik sağlamak için asla karbon atomundan fazlasını içermeyecektir .
Sadece karbon atomları kesintisiz düz bir çizgide dizilmiş molekülleri görüntülemelisiniz. Ergo, C-O-C
tahvil yok .
Önceki kurallar tarafından hariç tutulmayan tüm olası molekülleri iade etmelisiniz . Geçersiz girişleri işlemenize gerek yoktur.
Aşağıdaki örnek, bu molekül için ele almanız gereken tüm çözümleri gösterir.
Molekülün formülünden birinin sayfasının düzleminde 180 derece döndürme fazlalık olarak kabul edilir ve görüntülenmesine gerek yoktur.
Aşağıdaki örnekte, bir molekül için olası tüm formülleri göstereceğim, sonra görüntülenmesi gerekmeyenlere dikkat çekeceğim.
Misal
Giriş: C2H6O2
İlk olarak, bu giriş için olası tüm formüller (@Jonathan Allan'a teşekkürler)
01 H
|
O H
| |
H - O - C - C - H
| |
H H
02 H
|
H O
| |
H - O - C - C - H
| |
H H
03 H H
| |
H - O - C - C - O - H
| |
H H
04 H H
| |
H - O - C - C - H
| |
H O
|
H
05 H H
| |
H - O - C - C - H
| |
O H
|
H
12 H H
| |
O O
| |
H - C - C - H
| |
H H
13 H
|
O H
| |
H - C - C - O - H
| |
H H
14 H
|
O H
| |
H - C - C - H
| |
H O
|
H
15 H
|
O H
| |
H - C - C - H
| |
O H
|
H
23 H
|
H O
| |
H - C - C - O - H
| |
H H
24 H
|
H O
| |
H - C - C - H
| |
H O
|
H
25 H
|
H O
| |
H - C - C - H
| |
O H
|
H
34 H H
| |
H - C - C - O - H
| |
H O
|
H
35 H H
| |
H - C - C - O - H
| |
O H
|
H
45 H H
| |
H - C - C - H
| |
O O
| |
H H
Ve sayfanın düzleminde 180 ° dönüşleri çıkarırsak, çıktıda olması gereken formüller şunlardır:
01 H
|
O H
| |
H - O - C - C - H
| |
H H
03 H H
| |
H - O - C - C - O - H
| |
H H
12 H H
| |
O O
| |
H - C - C - H
| |
H H
13 H
|
O H
| |
H - C - C - O - H
| |
H H
14 H
|
O H
| |
H - C - C - H
| |
H O
|
H
15 H
|
O H
| |
H - C - C - H
| |
O H
|
H
23 H
|
H O
| |
H - C - C - O - H
| |
H H
25 H
|
H O
| |
H - C - C - H
| |
O H
|
H
35 H H
| |
H - C - C - O - H
| |
O H
|
H
Formüllerin etiketlerinin çıktısını almanıza gerek yoktur ve ikisi mevcut olduğunda rotasyonlardan birini çıktı alabilirsiniz. Örneğin, 02 veya 35 çıktısını alabilirsiniz.
Kodunuzu test etmek için bazı geçerli girişler şunlardır:
C3H8O2 C1H4O0 C2H6O2 C1H4O1 C2H6O2
Kimyager görevinizi tamamlamak için size verilen PC oldukça eskidir, bu nedenle kodunuzu kaydetmek için çok fazla belleğiniz yoktur, bu nedenle bu kod golfü ve en kısa bayt kazanır!