पाठ के H उच्च ग्रिड द्वारा W चौड़े पर एक सरल , खुले , दो-आयामी वक्र को चित्रित करने पर विचार करें जहां X
वक्र का हिस्सा होता है और .
खाली स्थान का प्रतिनिधित्व करता है और किसी अन्य वर्ण का उपयोग नहीं किया जाता है।
प्रत्येक ग्रिड स्थान में 8 पड़ोसी ग्रिड स्थान हैं, इसका मूर पड़ोस । सीमाओं से परे ग्रिड रिक्त स्थान को खाली माना जाता है।
एक ग्रिड में एक वक्र होता है अगर यह बिल्कुल एक है X
या यदि इसमें एक से अधिक है X
जहां:
- ठीक दो
X
एस में केवल एक पड़ोसी हैX
। ये वक्र के समापन बिंदु हैं। - प्रत्येक
X
समापन बिंदु पड़ोसियों के अलावा बिल्कुल दोX
एस। ये वक्र के थोक बनाते हैं।
उदाहरण के लिए, यह ग्रिड जहाँ W = 9 और H = 4 में एक वक्र है:
....X.... .X.X.X.X. X..X..X.X .XX.....X
इसी तरह, इन ग्रिड (W = 4, H = 3) में वक्र हैं:
.... .X.. .... .... .X.X .... X..X ..X. XX.. X.X. ..X. .XX. .X.. .... ....
ये ग्रिड, हालांकि, एक वक्र शामिल नहीं हैं:
.... .XX. ...X XX.. .... X.X. .... X..X ..XX XX.. .X.X .X.. .... .XX. .X.. .... ...X X.X.
हम सभी पड़ोसी जोड़े के बीच की दूरी को जोड़कर एक वक्र की लंबाई पा सकते हैं X
:
दो orthogonally पड़ोसी
X
s के बीच की दूरी 1 इकाई है।XX
X X
दो तिरछे पड़ोसी
X
एस के बीच की दूरी agon2 इकाइयां है।X. .X
.X X.
उदाहरण के लिए, ग्रिड में वक्र की लंबाई
XXX. ...X ..X.
के रूप में कल्पना की जा सकती है
तो हम देख सकते हैं कि यह 1 + 1 + √2 + 4.82 = 4.828427 है ...
केवल एक के साथ एक वक्र की लंबाई X
शून्य है।
जब एक ग्रिड एक वक्र नहीं बनाता है तो इसकी लंबाई अच्छी तरह से परिभाषित नहीं होती है।
चुनौती
X
S और .
s के टेक्स्ट के ग्रिड को देखते हुए , इसमें जो कर्व होता है उसकी लंबाई को आउटपुट करता है, या फिर कुछ ऐसा आउटपुट करता है जैसे -1
या Null
ग्रिड को इंगित करने के लिए कोई वक्र नहीं है।
इनपुट के लिए आप यदि चाहें तो अन्य वर्णों का उपयोग कर सकते हैं X
और .
यदि आवश्यकता हो तो H और W को इनपुट के रूप में लिया जा सकता है। एक स्ट्रिंग के बजाय 1s और 0s से भरी हुई नेस्टेड सूची या मैट्रिक्स के रूप में इनपुट भी ठीक है।
आप वक्र लंबाई या वैकल्पिक रूप से दो पूर्णांकों A और B के लिए फ्लोट का उत्पादन कर सकते हैं length = A + B*√2
।
बाइट्स में सबसे छोटा कोड जीतता है।
परीक्षण के मामलों
XXX.
...X
..X.
2 + 2*√2 = 4.828427...
....X....
.X.X.X.X.
X..X..X.X
.XX.....X
3 + 8*√2 = 14.313708...
....
....
..X.
0 + 0*√2 = 0
.X..
X..X
.XX.
1 + 3*√2 = 5.242640...
....
..X.
.X..
0 + 1*√2 = 1.414213...
....
XX..
....
1 + 0*√2 = 1
.X.X
X.X.
....
0 + 3*√2 = 4.242640...
....
....
....
....
-1
.XX.
X..X
.XX.
-1
...X
..XX
.X..
-1
....
.X.X
...X
-1
X.X.
.X..
X.X.
-1
[x.x,...,.x.]
एक वैध वक्र नहीं है, है ना?