Giriş
Karakter aralığı, bir metnin harfleri arasındaki boşluğu ayarlamak anlamına gelir. Örnek olarak, Top
aşağıdaki üç glifle yazılmış kelimeyi düşünün :
##### ..... .....
..#.. ..... .....
..#.. ..##. .###.
..#.. .#..# .#..#
..#.. .#..# .#..#
..#.. ..##. .###.
..... ..... .#...
..... ..... .#...
Glifler arasındaki boşlukları noktalarla doldurabilir ve bununla yapılabilir, ancak boşluklar bir şekilde çok geniş görünür. Bunun yerine, glifleri sola doğru kaydırıyoruz, böylece neredeyse dokunuyorlar:
#####........
..#..........
..#..##..###.
..#.#..#.#..#
..#.#..#.#..#
..#..##..###.
.........#...
.........#...
Bu çok daha iyi görünüyor! Çubuğunun T
sol kenarlığın üstünde olduğuna dikkat edin o
. Bu zorlu görevde, göreviniz böyle dikdörtgen glifler için basit bir karakter aralığı programı uygulamaktır.
Karakter aralığı
İki dikdörtgen 2D karakter dizileri düşünün .
ve #
aynı şekil. Basit karakter aralığı sürecimizde ilk önce dizileri yan yana, aralarında bir sütun olacak şekilde yerleştiriyoruz .
. Sonra, #
sağdaki dizinin her birini bir adım sola, #
sola ve sağ dizinin bir kısmı ortogonal veya çapraz olarak bitişik olana kadar hareket ettiririz. Karakter aralığı sonuç adımıdır önce biz bitişik tanıtmak #
s. Görevin bu süreci uygulamak.
Bir örnek alalım:
Inputs:
..###
#....
#....
..##.
...#.
...##
..###
....#
Process:
..###....#.
#........##
#.......###
..##......#
..###...#.
#.......##
#......###
..##.....#
..###..#.
#......##
#.....###
..##....#
..###.#.
#.....##
#....###
..##...#
..####.
#....##
#...###
..##..#
Son dizide yeni bitişik #
s çiftlerine sahibiz , bu yüzden ikinci-son dizi karakter aralığı işleminin sonucudur.
Giriş ve çıkış
Basit olması için, sadece iki glifin karakter aralığını kullanmanız gerekir . Girişleriniz, aşağıdaki biçimlerden birinde iki dikdörtgen 2D dizidir:
- Tamsayıların 2 dizisi, 0
.
ve 1 için olanlar#
. - Multiline dizeleri bitti
.#
. - Dizelerin dizileri bitti
.#
. - Karakterlerin 2B dizileri
.#
.
Girişler tek bir dize olarak alınırsa, makul sınırlayıcıları kullanabilirsiniz. Bununla birlikte, sınırlayıcı iki dizi arasında ilerlemelidir; bu, daha önce satırlar eşleştirilmiş iki girişi almanıza izin verilmeyeceği anlamına gelir.
Çıktınız, girişlerle aynı biçimde dikdörtgen bir 2D dizi olan bu iki diziye uygulanan karakter aralığı işleminin sonucudur. S'nin herhangi bir sayıda satır veya son sütununu eklemenize veya kaldırmanıza izin verilir .
, ancak çıktının dikdörtgen olması ve girişlerle aynı yüksekliğe sahip olması gerekir . Karakter aralığı işleminin, ikinci girişin sol kenarı, ilk girişin sol kenarı üzerinde kaymadan önce sona ermesi garanti edilir.
Kurallar ve puanlama
Her programlama dilinde en düşük bayt sayısı kazanır. Standart kod-golf kuralları geçerlidir.
Test durumları
Kopya yapıştırmaya yardımcı olmak için, bu test durumları dizelerin listesi olarak verilmiştir.
["#"] ["#"] -> ["#.#"]
["#.","..",".#"] ["##","..","##"] -> ["#..##",".....",".#.##"]
["..#","#..","#.."] ["...","..#","###"] -> ["..#..","#...#","#.###"]
["###.","##..","#...","...."] ["....","...#","..#.",".#.."] -> ["###..","##..#","#..#.","..#.."]
["..##...","#......","#......"] [".....##",".....##",".#...#."] -> ["..##..##","#.....##","#.#...#."]
["...#.",".....",".....",".....","....#"] [".....","....#","#....",".....","....."] -> ["...#..",".....#",".#....","......","....#."]
["..#..",".....",".....",".....","....#"] [".....","....#","#....",".....","....."] -> ["..#..","....#","#....",".....","....#"]
["######","#.....","#.....","#.....","######"] ["......",".....#",".#...#",".....#","......"] -> ["######..","#......#","#..#...#","#......#","######.."]
["######","#.....","#.....","#.....","######"] ["......","......",".#....","......","......"] -> ["######","#.....","#.#...","#.....","######"]
["#...#","#..#.","#.#..","##...","#.#..","#..#.","#...#"] ["...#.","..#..",".#...",".#...",".#...","..#..","...#."] -> ["#...#..#","#..#..#.","#.#..#..","##...#..","#.#..#..","#..#..#.","#...#..#"]