समस्या
एक साइन-अप फ़ॉर्म आयुओं को पाठ के रूप में प्राप्त करता है। एक प्रविष्टि valid होती है जब, दोनों सिरों के spaces हटाने के बाद, उसमें केवल digits हों (कोई sign नहीं) और उसका मान 0 और 150 के बीच inclusive हो।
पहली invalid प्रविष्टि खोजें ताकि फ़ॉर्म उपयोगकर्ता को उसी पर संकेत कर सके।
first_invalid_age(values) को implement करें।
Input
values: टाइप की गई आयुएँ, form order में।
Output
पहली invalid प्रविष्टि का index लौटाएँ, या यदि वे सभी valid हों तो -1.
सीमाएँ
0 ≤ प्रविष्टियों की संख्या ≤ 10,000
हर प्रविष्टि में अधिकतम 20 कैरेक्टर
उदाहरण
इनपुट:
values = ["25", " 40 ", "abc", "200"]
अपेक्षित आउटपुट:
expected = 2
इनपुट:
std::vector<std::string> values = {"25", " 40 ", "abc", "200"};
अपेक्षित आउटपुट:
long long expected = 2;
इनपुट:
string[] values = new string[] {"25", " 40 ", "abc", "200"};
अपेक्षित आउटपुट:
long expected = 2;
व्याख्या
"25" और " 40 " (spaces trimmed) valid हैं; index 2 पर "abc" पहली invalid प्रविष्टि है।
इनपुट:
values = ["0", "150", "007"]
अपेक्षित आउटपुट:
expected = -1
इनपुट:
std::vector<std::string> values = {"0", "150", "007"};
अपेक्षित आउटपुट:
long long expected = -1;
इनपुट:
string[] values = new string[] {"0", "150", "007"};
अपेक्षित आउटपुट:
long expected = -1;
व्याख्या
तीनों 0 और 150 के बीच के digits हैं (007 is 7), इसलिए उत्तर -1 है।
कैसे हल करें
पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।
संकेत 1
स्पेस हटाकर जाँचें कि प्रविष्टि खाली नहीं है और उसमें सिर्फ़ अंक हैं।
संकेत 2
उसके बाद ही मान की तुलना 150 से करें।
संकेत 3
माइनस चिह्न प्रविष्टि को गलत बनाता है, और 007 सही 7 है।
अपेक्षित जटिलता
समय O(कुल लंबाई), अतिरिक्त स्थान O(1)
संदर्भ
यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।