MATLAB, 63 41 40 38 36 बाइट्स
1 बाइट से शेविंग करने के लिए टॉम कारपेंटर का धन्यवाद!
2 बाइट्स बंद करने के लिए स्टेवी ग्रिफिन के लिए धन्यवाद!
@(x)nnz(x(+~strcmp('google',x):end))
अन्य अधिक सुरुचिपूर्ण समाधानों के विपरीत, MATLAB में शून्य ऑपरेशन द्वारा एक विभाजन का प्रदर्शन एक त्रुटि नहीं देगा, बल्कि Inf
। यह समाधान द्वारा स्ट्रिंग की लंबाई का पता लगाता है nnz
। उत्पन्न होने वाली स्ट्रिंग इस तरह से है कि आप स्ट्रिंग की शुरुआत से अंत तक इंडेक्स करते हैं, जो अनिवार्य रूप से स्ट्रिंग की एक प्रति है। हालांकि, जो महत्वपूर्ण है वह यह है कि स्ट्रिंग को एक्सेस करने की शुरुआत इनपुट के बराबर है या नहीं, यह जाँच कर उत्पन्न की जाती है 'google'
। यदि ऐसा नहीं है, तो यह 1 का आरंभिक सूचकांक पैदा करता है और हम सामान्य रूप से स्ट्रिंग में सूचकांक करते हैं ... क्योंकि MATLAB 1 पर अनुक्रमित करना शुरू कर देता है। क्या यह बराबर होना चाहिए, उत्पादित सूचकांक 0 है और MATLAB एक अनुक्रमणिका त्रुटि को यह कहते हुए फेंक देगा कि सूचकांक एक सकारात्मक पूर्णांक होना चाहिए। अतिरिक्त+
यह सुनिश्चित करना है कि समानता की जाँच बूलियन / के बजाय संख्यात्मक है logical
। +
वसीयत को स्वीकार करते हुए एक चेतावनी का उत्पादन किया जाएगा, लेकिन क्योंकि इस चुनौती के विनिर्देशों ने चेतावनियों की अनुमति नहीं दी है, +
यह आवश्यक है ... इस प्रकार कोड को पूरा करना।
उदाहरण का उपयोग करता है
>> f=@(x)nnz(x(+~strcmp('google',x):end)) %// Declare anonymous function
f =
@(x)nnz(x(+~strcmp('google',x):end))
>> f('bing')
ans =
4
>> f('google')
Subscript indices must either be real positive integers or logicals.
Error in @(x)nnz(x(+~strcmp('google',x):end))
एक अधिक मजेदार संस्करण, 83 77 76 74 72 बाइट्स
1 बाइट से शेविंग करने के लिए टॉम कारपेंटर का धन्यवाद!
2 बाइट्स बंद करने के लिए स्टेवी ग्रिफिन के लिए धन्यवाद!
@(x)eval('if strcmp(''google'',x),web([x ''.com/i'']);else nnz(x),end');
ऊपर एक आधिकारिक सबमिशन नहीं है, लेकिन यह कुछ ऐसा है जिसे चलाने में थोड़ा अधिक मज़ा आता है। eval
अनाम फ़ंक्शंस में दुर्व्यवहार करना, कोड क्या करता है, यह देखने के लिए जांचता है कि क्या इनपुट स्ट्रिंग के बराबर है 'google'
... और यदि ऐसा है, तो यह MATLAB के अंतर्निहित वेब ब्राउज़र को खोल देगा और Google के 404 त्रुटि पृष्ठ को एक्सेस करने की कोशिश कर रहा है। i
जब यह मौजूद नहीं है तो उपपृष्ठ स्थित है। यदि नहीं, तो हम सामान्य रूप से स्ट्रिंग की लंबाई प्रदर्शित करते हैं।
उदाहरण का उपयोग करता है
>> f=@(x)eval('if strcmp(''google'',x),web([x ''.com/i'']);else nnz(x),end'); %// Declare anonymous function
>> f('bing')
ans =
4
>> f('google')
>>
अंतिम कॉल का उपयोग करके 'google'
हमें यह स्क्रीन मिलती है: