ম্যাটল্যাব, 63 41 40 38 36 বাইট
টম কার্পেন্টারকে ধন্যবাদ 1 বাইট বন্ধ করে দেওয়ার জন্য!
স্টিভি গ্রিফিনকে 2 বাইট শেভ করার জন্য ধন্যবাদ!
@(x)nnz(x(+~strcmp('google',x):end))
অন্যান্য অন্যান্য মার্জিত সমাধানগুলির বিপরীতে, ম্যাটল্যাব-এ শূন্য অপারেশন দ্বারা বিভাজন সম্পাদন করা ত্রুটি দেবে না, বরং Inf
। এই সমাধান দ্বারা স্ট্রিংয়ের দৈর্ঘ্য সন্ধান করে nnz
। স্ট্রিংটি উত্পাদিত হয় এমনভাবে হয় যে আপনি স্ট্রিংয়ের শুরু থেকে শেষ পর্যন্ত সূচক করেন যা মূলত স্ট্রিংয়ের অনুলিপি। যাইহোক, কী গুরুত্বপূর্ণ তা হল ইনপুটটি সমান কিনা তা পরীক্ষা করে স্ট্রিংটি অ্যাক্সেস করতে হবে কিনা তা শুরু করা হয় 'google'
। যদি তা না হয় তবে এটি 1 এর সূচনা সূচক তৈরি করে এবং আমরা স্ট্রিংগুলিতে সাধারণত সূচি সূচনা করি ... যেমন ম্যাটল্যাব 1 সূচী সূচনা করে এটির সমান হওয়া উচিত, উত্পাদিত সূচকটি 0 হয় এবং এমএটিএলএবি একটি সূচক ত্রুটি নিক্ষেপ করে বলে দেয় যে সূচকটি ইতিবাচক পূর্ণসংখ্যার হওয়া দরকার। অতিরিক্ত+
সমতা পরীক্ষার আউটপুট বুলিয়ান / এর চেয়ে সংখ্যাগত কিনা তা নিশ্চিত করা 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'
... এবং যদি তা হয় তবে এটি ম্যাটল্যাবের অন্তর্নির্মিত ওয়েব ব্রাউজারটি খুলবে এবং গুগলের 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'
আমাদের এই স্ক্রিনটি দেয়: