SO ile ilgili bu soruya rastladım ve güzel bir golf mücadelesi yapacağını düşündüm. İşte burada:
Meydan okuma:
Bir karakter dizisi dizisi, her satırda bir tane okuyan ve her dizenin aynı karaktere sahip olduğu tüm konumların bir listesini veren bir program yazın.
Giriş ve çıkış:
Giriş, her biri bir satırsonu olan bir veya daha fazla yazdırılamayan boşluk olmayan ASCII karakter satırından oluşur. Sen olabilecek tüm giriş hatları aynı uzunlukta olduğunu varsayalım. Satır olduğunu değil girişin parçası olarak kabul edilecek (yani eşleşen bir karakter olarak çıktı o olmamalı).
Örnek girdi (SO sorusundan utanmadan çalınmış):
abcdefg
avcddeg
acbdeeg
Girişi okuduktan sonra, programınız eşleşen her sütunun pozisyonlarını ve içerdikleri karakterleri yazdırmalıdır. (Eşleşen sütun olmadığını erkenden belirleyebiliyorsa, programınız başka girdilerin okunmasını durdurabilir, ancak gerekmeyebilir.) Makul çıktı biçimlerine izin verilir; özellikle, konumlar için 0 veya 1 tabanlı dizine ekleme özelliğini kullanabilirsiniz.
Yukarıdaki giriş için örnek çıktı (0 tabanlı indeksleme kullanarak):
0: a
3: d
6: g
puanlama:
Bu kod golf, çok kısa cevap kazanır. Beraberlik durumunda, ek özellikler için kesirli kravat kesici karakterleri verilebilir:
- Length eşit olmayan uzunluktaki giriş hatlarını doğru işlemek için grafikler. (Çıktı, en kısa giriş çizgisinin sonunu geçecek konumlar içermemelidir.)
- Rasgele UTF-8 kodlu Unicode karakterlerden oluşan girişi doğru işlemek için grafikler.
İlham almak için, SO sorusunda bazı çözülmemiş çözümler bulabilirsiniz (yukarıya bakın).
Açıklamalar:
Basitçe olduğu gibi pozisyonları ve karakterleri birleştirerek
0a3d6g, yok değil "makul çıktı" olarak sayılır. Çıktının her öğesi arasında açık bir şekilde ayrıştırılabilmesi için bir tür ayırıcı (boşluk gibi) sağlamalısınız.Giriş, standart giriş akışında (
stdin) veya seçtiğiniz dil için en doğal metin dosyası giriş mekanizması kullanılarak sağlanacaktır . (Seçtiğiniz dil etmezse sahip ruhu içinde en yakın görünüyor ne yapmak, dosya girişi için doğal bir mekanizma.)Girilecek daha fazla veri olmadığında (yani bir dosya sonu koşulu oluştuğunda) girdi sona erer. Dilerseniz siz edebilir girişi (besbelli, daha sonra giriş parçası olarak saymak gerekir) boş bir çizgi ile sona erdirilebilir gerektirir. Bunu yaparsanız, başkalarının test için doğru girdi sağlayabilmesi için lütfen yanıtınızda belirtin.
Sonuncusu da dahil olmak üzere her giriş satırı yeni satır karakteri ile biter. Yanıtınız bu yeni satırı eşleşen bir sütun olarak bildirmemelidir. (Çözümünüz, son satırın yeni satırda bitmeyen girdileri de işleyebiliyorsa sorun değil, ancak bu gerekli değildir.)