पार के दृश्य
सकारात्मक पूर्णांक की एक सूची को देखते हुए A
, इसे एक बढ़ता हुआ क्रम कहें, यदि प्रत्येक तत्व पिछले एक से अधिक या उसके बराबर है; और इसे घटते क्रम को कहें, यदि प्रत्येक तत्व पिछले वाले से कम या बराबर है।
कुछ बढ़ते क्रम:
[1,2,4,7]
[3,4,4,5]
[2,2,2]
[]
कुछ घटते क्रम:
[7,4,2,1]
[5,4,4,3]
[2,2,2]
[]
एक क्रॉसिंग अनुक्रम एक सूची है जिसे दो असमानताओं के बाद विघटित किया जा सकता है, एक बढ़ता क्रम और दूसरा घटता क्रम।
उदाहरण के लिए, सूची:
[3,5,2,4,1]
एक क्रॉसिंग अनुक्रम है, क्योंकि इसे विघटित किया जा सकता है:
[3, 4 ]
[ 5,2, 1]
जहाँ [3,4]
बढ़ती हुई परवर्तीता है और [5,2,1]
घटती हुई परवर्ती है। हम क्रॉसिंग अनुक्रम के अपघटन के बाद (बढ़ती, घटती) की ऐसी जोड़ी को बुलाएंगे ।
सूचि:
[4,5,2,1,3]
एक क्रॉसिंग अनुक्रम नहीं है; बढ़ते और घटते क्रम में इसे विघटित करने का कोई तरीका नहीं है।
आपका कार्य एक प्रोग्राम लिखना है / इनपुट को सकारात्मक पूर्णांक की सूची के रूप में लेना है; और यदि यह एक क्रॉसिंग सीक्वेंस है, तो दो सूचियों को उसके किसी एक डिकम्पोजिशन में लौटा दें; या कुछ सुसंगत "गलत" मान यदि सूची क्रॉसिंग अनुक्रम नहीं है।
यह कोड-गोल्फ है ; प्रत्येक भाषा में सबसे छोटा कार्यक्रम / समारोह विजेता है।
नियम:
- इनपुट लचीला है।
- सामान्य खामियों के लिए मना किया जाता है।
- यदि इनपुट को विघटित करने के कई वैध तरीके हैं, तो आप उनमें से एक या सभी आउटपुट कर सकते हैं।
- अपघटन के लिए आउटपुट स्वरूपण लचीला है; लेकिन यह दो बाद के बीच के अंतर के बारे में स्पष्ट होना चाहिए।
- आप यह इंगित करने के लिए किसी सुसंगत आउटपुट मान का उपयोग कर सकते हैं कि इनपुट क्रॉसिंग अनुक्रम नहीं है; किसी भी क्रॉसिंग अनुक्रम के लिए आउटपुट की तुलना में यह बहुत लंबा है। आपको अपने उत्तर में गलत मूल्य निर्दिष्ट करना चाहिए।
परीक्षण के मामलों:
False
गैर-क्रॉसिंग अनुक्रमों को इंगित करने के लिए उपयोग करना :
[3, 5, 2, 4, 1] => [3, 4], [5, 2, 1]
[3, 5, 2, 4, 4, 1, 1] => [3, 4, 4], [5, 2, 1, 1]
[7, 9, 8, 8, 6, 11] => [7, 8, 8, 11], [9, 6]
[7, 9, 8, 8, 6, 11] => [7, 9, 11], [8, 8, 6] # also valid
[7, 9, 8, 8, 6, 11] => [7, 8, 11], [9, 8, 6] # also valid
[7, 8, 9, 10, 20, 30] => [7, 8, 9, 20, 30], [10]
[7, 8, 9, 10, 20, 30] => [8, 9, 10, 20, 30], [7] # this is also valid
[5, 5, 5] => [5, 5, 5], []
[4, 5, 2, 1, 3] => False
[3, 4, 3, 4, 5, 2, 4] => False
[3, 5, 2, 4, 4, 1, 1]
। वर्तमान परीक्षण मामले आपको >=
/ के साथ दूर होने देते हैं <
, जब यह वास्तव में होना चाहिए >=
/ <=
।