परिचय
केरिंग का अर्थ है किसी पाठ के अक्षरों के बीच अंतर को समायोजित करना। एक उदाहरण के रूप में, Top
निम्नलिखित तीन ग्लिफ़ के साथ लिखे गए शब्द पर विचार करें :
##### ..... .....
..#.. ..... .....
..#.. ..##. .###.
..#.. .#..# .#..#
..#.. .#..# .#..#
..#.. ..##. .###.
..... ..... .#...
..... ..... .#...
हम बस डॉट्स के साथ ग्लिफ़ के बीच अंतराल को भर सकते हैं और इसके साथ किया जा सकता है, लेकिन अंतराल किसी भी तरह बहुत व्यापक दिखते हैं। इसके बजाय, हम ग्लिफ़ को बाईं ओर स्लाइड करते हैं ताकि वे लगभग स्पर्श करें:
#####........
..#..........
..#..##..###.
..#.#..#.#..#
..#.#..#.#..#
..#..##..###.
.........#...
.........#...
यह बहुत अच्छा लग रहा है! ध्यान दें कि T
बाईं ओर की सीमा के शीर्ष पर पट्टी कैसे है o
। इस चुनौती में, आपका कार्य इस तरह के आयताकार ग्लिफ़ के लिए एक सरल कर्नेल कार्यक्रम को लागू करना है।
कर्लिंग प्रक्रिया
की दो आयताकार 2 डी चरित्र सरणियों पर विचार करें .
और #
एक ही आकार के। हमारी सरल कर्निंग प्रक्रिया में, हम पहले एरे को साइड में रखते हैं, .
बीच में एस के एक कॉलम के साथ । फिर, हम प्रत्येक #
को दाईं ओर के एक चरण में बाईं ओर ले जाते हैं, जब तक #
कि बाएं और दाएं सरणी के कुछ हिस्से orthogonally या तिरछे आसन्न नहीं होते हैं। कर्निंग का परिणाम पहले कदम है हम आसन्न #
एस का परिचय दें । आपका कार्य इस प्रक्रिया को लागू करना है।
आइए एक उदाहरण लेते हैं:
Inputs:
..###
#....
#....
..##.
...#.
...##
..###
....#
Process:
..###....#.
#........##
#.......###
..##......#
..###...#.
#.......##
#......###
..##.....#
..###..#.
#......##
#.....###
..##....#
..###.#.
#.....##
#....###
..##...#
..####.
#....##
#...###
..##..#
अंतिम सरणी में, हमारे पास एस के नए आसन्न जोड़े हैं #
, इसलिए दूसरी-से-अंतिम सरणी कर्निंग प्रक्रिया का परिणाम है।
इनपुट और आउटपुट
सादगी के लिए, आपको केवल दो ग्लिफ़ की गुठली को संभालना होगा । आपके इनपुट निम्न आयतों में से दो आयताकार 2 डी सरणियाँ हैं:
- पूर्णांक के 2 डी सरण, 0 के लिए खड़े हैं
.
और 1 के लिए#
। - मल्टीलाइन तार पर
.#
। - तार की गिरफ्तारी
.#
। - पात्रों की 2 डी सरणियाँ
.#
।
यदि इनपुट को एक स्ट्रिंग के रूप में लिया जाता है, तो आप किसी भी उचित सीमांकक का उपयोग कर सकते हैं। हालांकि, सीमांकक दो सरणियों के बीच जाना चाहिए, जिसका अर्थ है कि आपको पहले से ही पंक्तिबद्ध-पंक्ति के दो इनपुट लेने की अनुमति नहीं है।
आपका आउटपुट इन दो सरणियों पर लागू कर्निंग प्रक्रिया का परिणाम है, जो इनपुट के समान प्रारूप में एक आयताकार 2D सरणी है। आपको s के किसी भी अग्रणी या अनुगामी कॉलम को जोड़ने या हटाने की अनुमति है .
, लेकिन आउटपुट अवश्य होना चाहिए आयताकार चाहिए और इनपुट के समान ऊँचाई चाहिए। यह गारंटी दी जाती है कि पहले इनपुट के बाएं किनारे पर दूसरे इनपुट स्लाइड के बाएं किनारे से पहले कर्निंग प्रक्रिया समाप्त होती है।
नियम और स्कोरिंग
प्रत्येक प्रोग्रामिंग भाषा जीत में सबसे कम बाइट गिनती होती है। मानक कोड-गोल्फ नियम लागू होते हैं।
परीक्षण के मामलों
कॉपी-पेस्ट करने में मदद करने के लिए, इन परीक्षण मामलों को स्ट्रिंग की सूची के रूप में दिया जाता है।
["#"] ["#"] -> ["#.#"]
["#.","..",".#"] ["##","..","##"] -> ["#..##",".....",".#.##"]
["..#","#..","#.."] ["...","..#","###"] -> ["..#..","#...#","#.###"]
["###.","##..","#...","...."] ["....","...#","..#.",".#.."] -> ["###..","##..#","#..#.","..#.."]
["..##...","#......","#......"] [".....##",".....##",".#...#."] -> ["..##..##","#.....##","#.#...#."]
["...#.",".....",".....",".....","....#"] [".....","....#","#....",".....","....."] -> ["...#..",".....#",".#....","......","....#."]
["..#..",".....",".....",".....","....#"] [".....","....#","#....",".....","....."] -> ["..#..","....#","#....",".....","....#"]
["######","#.....","#.....","#.....","######"] ["......",".....#",".#...#",".....#","......"] -> ["######..","#......#","#..#...#","#......#","######.."]
["######","#.....","#.....","#.....","######"] ["......","......",".#....","......","......"] -> ["######","#.....","#.#...","#.....","######"]
["#...#","#..#.","#.#..","##...","#.#..","#..#.","#...#"] ["...#.","..#..",".#...",".#...",".#...","..#..","...#."] -> ["#...#..#","#..#..#.","#.#..#..","##...#..","#.#..#..","#..#..#.","#...#..#"]