पृष्ठ चयन इंटरफ़ेस बनाने की आवश्यकता आम है। यह आमतौर पर इस तरह दिखता है:
prev 1 ... 3 4 [5] 6 7 ... 173 next
जिसका अर्थ है कि पूरी तरह से 173 पृष्ठ हैं, और आप वर्तमान में 5 वें पृष्ठ पर हैं।
इस चुनौती के लिए आपको कुल पृष्ठों की संख्या और वर्तमान पृष्ठ संख्या को इनपुट के रूप में लेना होगा, और पृष्ठ चयनकर्ता को "प्रदर्शित" करने के लिए एक स्ट्रिंग (या एक सरणी) का उत्पादन करना होगा।
इनपुट
2 सकारात्मक पूर्णांक
- वर्तमान पृष्ठ संख्या
- पृष्ठों की गिनती
यह गारंटी है कि 1 <= वर्तमान <= कुल।
उत्पादन
आउटपुट एक स्ट्रिंग या एक सरणी जो पृष्ठ चयनकर्ताओं के लिए ui का प्रतिनिधित्व करता है।
- यदि स्ट्रिंग के रूप में आउटपुट, प्रत्येक पृष्ठों के बीच एक एकल स्थान (U + 0020) का उपयोग किया जाना चाहिए।
- यदि एक सरणी के रूप में आउटपुट होता है, तो सरणी को प्रत्येक आइटम को स्ट्रिंग में बदलने और उन्हें एक ही स्थान के साथ जुड़ने के बाद स्ट्रिंग के समान परिणाम उत्पन्न करना चाहिए।
- तीन डॉट्स (
...
) सरणी आउटपुट के लिए वैकल्पिक नहीं है।
- तीन डॉट्स (
विवरण
- यदि वर्तमान == 1, कोई "प्रचलित" आउटपुट नहीं किया जाएगा, अन्यथा, "प्रचलित" पहले आता है।
- यदि वर्तमान == कुल, कोई "अगला" आउटपुट नहीं किया जाएगा, अन्यथा, "अगला" अंतिम आता है।
- पहला पृष्ठ (1) और अंतिम पृष्ठ (कुल) हमेशा आउटपुट होना चाहिए।
- वर्तमान पृष्ठ, (वर्तमान - 1) पृष्ठ, (वर्तमान - 2) पृष्ठ, (वर्तमान + 1) पृष्ठ, (वर्तमान + 2) पृष्ठ को तब तक आउटपुट किया जाना चाहिए जब तक कि वे [1..total] की सीमा में न हों।
- कोई अन्य पेज नंबर आउटपुट नहीं होना चाहिए।
- आउटपुट किए गए पृष्ठों को आरोही क्रम में क्रमबद्ध किया जाना चाहिए।
- आउटपुट में डुप्लिकेट पेज नंबर नहीं होना चाहिए।
- वर्तमान पृष्ठ को एक जोड़ी में लपेटकर हाइलाइट किया जाना चाहिए
[]
। - यदि किसी पड़ोसी के बीच कोई गैप है, तो तीन डॉट्स (
...
) डाले जाने चाहिए।
परीक्षण के मामलों
Current Total Output
1 1 [1]
1 2 [1] 2 next
1 10 [1] 2 3 ... 10 next
3 3 prev 1 2 [3]
3 6 prev 1 2 [3] 4 5 6 next
4 6 prev 1 2 3 [4] 5 6 next
4 7 prev 1 2 3 [4] 5 6 7 next
3 10 prev 1 2 [3] 4 5 ... 10 next
5 10 prev 1 ... 3 4 [5] 6 7 ... 10 next
10 10 prev 1 ... 8 9 [10]
52 173 prev 1 ... 50 51 [52] 53 54 ... 173 next
नियम
- यह कोड-गोल्फ है, सबसे छोटा कोड जीतता है!
4,7
परीक्षण के मामले की काफी सराहना की जाएगी - यह सुनिश्चित करेगा कि दोनों सीमा के मामले जो दीर्घवृत्त को छोड़कर समवर्ती रूप से मिले हों
4 , 6
परीक्षण के मामले के रूप में जोड़ने लायक हो सकता है ।3, 6
मामले के समान , लेकिन यह सुनिश्चित करता है कि डॉट्स को बाईं ओर नहीं जोड़ा गया है।