গুগল করবেন না “গুগল”


158

আমরা সকলেই জানি যে আপনি "গুগল" শব্দটি গুগল করলে ইন্টারনেটটি ভেঙে যায়।

আপনার টাস্কটি এমন কোনও ফাংশন তৈরি করা যা একটি স্ট্রিং গ্রহণ করে এবং তার দৈর্ঘ্য ফিরিয়ে দেয়, সম্ভাব্যতম ইউনিকোডের অক্ষরগুলিতে।

তবে প্রদত্ত স্ট্রিং যদি google(ছোট হাতের) হয় তবে এটি একটি ত্রুটি ঘটায়।

উদাহরণস্বরূপ, g('bing')ফিরে আসবে 4তবে g('google')একটি ত্রুটি ঘটবে।

দয়া করে ব্যবহারের একটি উদাহরণ এবং সম্ভব হলে ত্রুটি সরবরাহ করুন।


122
আমি গুগল গুগল করেছি , এবং গুগল গুগলে গুগল খুঁজে পেয়েছে। পুরাণে আবদ্ধ
জিওবিটস

86
@ জিওবিটস এটি গুগল গুগল করব কিনা তা দেখার জন্য কেবল একটি পরীক্ষা, যা আমি করব না। : ডি
rybo111

7
কাজটি কি সংবেদনশীল হওয়া দরকার? এটি 'গুগল' দেওয়া উচিত?
এক্সএমআইএম

2
আমি যখন গুগলে গুগল টাইপ করি (ক্রোমের উপর অনুসন্ধান বার), আমি একটি বার্তা এসে জিজ্ঞাসা করলাম যে আমি গুগলে যেতে চাই কিনা । (এখন এটি একটি টিএলড , এটি বোধগম্য হয় অর্থাৎ কম জিমেইল কাজ করে)। আমি এটিতে ক্লিক করেছি এবং একটি ডিএনএস লুপ লক ত্রুটি পেয়েছি। ইন্টারনেট: ভাঙ্গা!
ক্রেগ

4
আমি এটি আবার খুলতে ভোট দিচ্ছি। এই চ্যালেঞ্জের জন্য কোন ত্রুটিটি কী তা নিয়ে আমি কোনও প্রশ্ন দেখিনি এবং এর ইতিমধ্যে 154 টি উত্তর রয়েছে সুতরাং আমি অনুভব করি না যে অনুমানটি পরিবর্তন করা উপযুক্ত। এটি কোনও ভাল প্রশ্নের উদাহরণ নাও হতে পারে তবে এটি যথেষ্ট স্পষ্ট। কোনও উত্তর যদি একটি সত্যই আউটপুট ত্রুটি হয় কিনা তা যদি সত্যিই নেমে আসে তবে সম্ভবত এটি এতগুলি আপভোস্ট পাবে না।
পোকে দিন

উত্তর:


228

পাইথন 2, 29

lambda x:len(x)/(x!='google')

একটি দেয় ZeroDivisionErrorউপর "google", এবং দৈর্ঘ্য অন্যথায়। এটি পাইথনের বুলিয়ান সমান 0এবং এর সুবিধা গ্রহণ করে 1


2
+1 টি। যদিও আপনাকে এটি সেট gকরতে হবে lambda, বা কোনও ইনপুট দিয়ে বেনামে কল করতে হবে।
জ্যাচ গেটস

4
কেবল মজা করার জন্য, আমি এই কৌশলটি জাভাস্ক্রিপ্ট ইএস 6 দিয়ে চেষ্টা করেছি। এটি 25 এ শেষ হয়েছে, তবে Infinityকোনও ত্রুটি নিক্ষেপের পরিবর্তে "গুগল" এর জন্য ফিরে আসে ...
ETH প্রোডাকশনস

18
@ জ্যাচগেটস মেটা সম্পর্কিত sensক্যমত্য হ'ল অনামী কার্যাবলী অনুমোদিত না হলে বিশেষভাবে অনুমোদিত নয়। যেহেতু প্রশ্নটি এই জাতীয় কিছু বোঝায় (তবে স্পষ্টভাবে এটি এড়িয়ে যায় না), আপনার এটি সম্পর্কে ওপিকে জিজ্ঞাসা করা উচিত।
FryAmTheEggman

3
@ কেভিন আপনি returnযদি ব্যবহার করেন তবে আপনার প্রয়োজন হবেdef
FryAmTheEggman

3
মজাদারভাবে, পাইথ-এ অনুবাদ করা আমার পূর্বের সেরা পাইথ সমাধানের চেয়ে আরও ভাল করে। এটি L/lbnb"google, 13 বাইট
ইসাকাক

107

এক্সেল, 23 টি অক্ষর

এটি A1 ব্যতীত অন্য কোনও ঘরে আটকে দিন এবং আপনার অনুসন্ধান ক্যোয়ারী A1 তে টাইপ করুন।

=LEN(A1)/(A1<>"google")

উদাহরণ স্বরূপ:

GoogleGoogle


9
এক্সেল ব্যবহারের বিষয়ে সাধারণ sensকমত্য কী?
বিটা ক্ষয়

52
@BetaDecay। সৃজনশীল, অসাধারণ, কাজ করছে বলে মনে হচ্ছে। সমস্ত সিজি ধাঁধাগুলির জন্য প্রযোজ্য হবে না, তবে এটি এখানে!
kdbanman

119
পরিচালকরা এটি পছন্দ!
lkraider

18
দক্ষ, সিজি ব্যবহারকারীরা এর জন্য আপনাকে ঘৃণা করবে। কিন্তু অপেক্ষা করো. বি 3 আপনার জীবন চিরকাল বদলে দেবে!
সুমুরাই 8

8
এক্সেল ব্যবহারের নির্দিষ্ট ধারণাটি কী?
গ্রিনএজজেড

81

সি #, 43 বাইট

সালাহ আলামীর উত্তরের উন্নতি। "গুগল" সরবরাহের ক্ষেত্রে স্ট্যাকের ওভারফ্লো ব্যতিক্রম ছোঁড়ার পুনরাবৃত্তি

int g(string s)=>s!="google"?s.Length:g(s);

2
হ্যাঁ আমি ভেবেছিলাম এটি ব্যতিক্রম ছড়িয়ে দেওয়ার জন্য কিছু অক্ষর সংরক্ষণ করার জন্য একটি দুর্দান্ত চালাক। 4 টি অক্ষরে, এটি নিশ্চিত নয় যে সি # তে একটি ব্যতিক্রম ছড়িয়ে দেওয়ার ক্ষুদ্রতম উপায় হতে পারে sure
ডিএলহ

6
এই চালাক! তবে সি # এর সাম্প্রতিক সংস্করণগুলির লেজ পুনরাবৃত্তির জন্য সমর্থন রয়েছে যাতে এই ফাংশনটি কখনই ছুঁড়ে না ফেলে StackOverflowException। আসলে এটি কখনই ফিরে আসবে না (যেমন আচরণ করে while(true){})।
নাইটএলফিক

2
@ ডিএলএইচ টেইল পুনরাবৃত্তি কলগুলি কিছুটা জটিল। আপনাকে x64 জেআইটি চালাতে হবে এবং ডিবাগার ছাড়াই (ডিবাগার সংযুক্ত হয়ে লেজের পুনরাবৃত্তি স্পষ্ট কারণে কাজ না করার কারণ হবে)। এখানে একটি প্রমাণ হিসাবে আমার প্রোগ্রামটি রয়েছে: imgur.com/ErNl8LJ এবং লেজ পুনরাবৃত্তি সম্পর্কে আরও কিছুটা পড়ুন: ব্লগস.এমএসএন / বি / ড্যাভব্র / অর্চিভ / ২০০7 /০ //২০১৮ ;)
নাইটএলফিক

12
হা হা: ছ (স্ট্রিং) ... আমি নিজেকে দেখব ...
গ্রেসডেনিস

1
@ ডিএলহ ওহ অপেক্ষা করুন না আমি আপনার ৪৩ বাইটের সাথে মেলে ধরতে পারি তবে তা হারাতে পারি না। :) int g (স্ট্রিং গুলি) => s! = "গুগল"? এস। দৈর্ঘ্য: এস [9];
লী

57

পাইথ, 14 13 টি অক্ষর

L/lbnb"google

একটি নামকৃত ফাংশন সংজ্ঞায়িত করে y

যদি স্ট্রিং গুগল না হয় এবং অন্যথায় 0 দ্বারা দৈর্ঘ্যকে 1 দ্বারা বিভক্ত করে । ধারণাটি উপন্যাস নয়, তবে আমি এটি স্বাধীনভাবে নিয়ে এসেছি।

এটি অনলাইনে চেষ্টা করুন।

কিভাবে এটা কাজ করে

L                 Define y(b):
  lb                Compute len(b).
    nb"google       Compute (b != "google").
 /                  Set _ = len(b) / (b != "google").
                  Return _. (implicit)

হ্যাঁ আমি এই সম্পর্কে আসলেই অনিশ্চিত, আমি মনে করি না স্ট্রিংয়ের সাথে আগে এটি হয়েছিল। সাধারণত আপনি এটি দিয়ে বন্ধ ;করতে পারেন তবে স্পষ্টত আপনি এখানে পারবেন না ...
FryAmTheEggman

আপনার শেষের উদ্ধৃতি দরকার নেই।
মালটিসেন

48
" একটি নামকৃত ফাংশন সংজ্ঞায়িত করে y " তবে yআপনার কোডটিতে কোনও নেই !?
এএল

46
@ আচ্ছা এটি সঠিক। অন্তর্নির্মিত Lফাংশনটির নতুন সংজ্ঞা দেয় y
ডেনিস

90
আমি নিশ্চিত নই, তবে আমি মনে করি আমি পাইথকে ঘৃণা করি।
মিস্টার লিস্টার

40

ম্যাটল্যাব, 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'আমাদের এই স্ক্রিনটি দেয়:

এখানে চিত্র বর্ণনা লিখুন


3
strcmpপরিবর্তে ব্যবহার করে আপনি একটি বাইট সংরক্ষণ করতে পারেন isequal
টম কার্পেন্টার

@ টমকার্পেন্টার - মজার। আমি আসলে নিজেকে ব্যবহার করতে বলেছিলাম strcmpকিন্তু isequalকোনও কারণে ব্যবহার শেষ হয়েছে .... ধন্যবাদ!
rayryeng

1
nnzদুই বাইট চেয়ে খাটো numel। আপনি কয়েক বছর আগে আমার ভোট পেয়েছিলেন :-)
স্টিভি গ্রিফিন

31

জাভাস্ক্রিপ্ট ES6, 34 27 25 টি অক্ষর

f=>f=='google'?Δ:f.length

গুগলের জন্য একটি রেফারেন্স এরির ফেলে দেয় Δ


10
আপনি দুটি বাইট সংরক্ষণ করতে একটি টার্নারি অপারেটর ব্যবহার করতে পারেন।
কনরাড বোরোস্কি

2
হ্যাঁ, আমি ঠিক এটি পেয়েছিলাম। যদি আপনি অভিনব হতে চান, এমন একটি প্রতীক ব্যবহার করুন যা লোকেরা কখনও g এর পরিবর্তে ব্যবহার না করে তা নিশ্চিত হয়ে নিন যে এটি কোনও বৈশ্বিক চলক হিসাবে উপস্থিত থাকবে না। A একটি ভাল পরিবর্তনশীল নামের জন্য তৈরি করে :)
ডমিনো

1
আপনি ব্যবহার করতে পারেন #, এটি জেএস আফাইক-এ ত্রুটি করেছে
তালি

7
Δ গুগল ইলুমিনাতি নিশ্চিত করেছে
ডায়নামাইটআরিড

2
আমি কেবল এখানে এটি ছেড়ে চলে যাচ্ছি github.com/Rabrennie/anything.js
sagiksp

26

টিআই-বেসিক, 15 বাইট

মুরগি, আমরা যখন এটির সাথে ছিলাম তেমনি এখানে টিআই-বেসিক উত্তরও পেতে পারি।

ইনপুট ফর্ম্যাট হয় "string":prgmNAME। এটি প্রথম খুঁজে পাওয়ার জন্য টমাস কোয়াকে ক্রেডিট !

length(Ans)+log(Ans≠"GOOGLE

(গাইড: বড় হাতের অক্ষরের পরিবর্তে প্রতিটি ছোট হাতের অক্ষরের জন্য 1 বাইট যুক্ত করুন So তাই s/GOOGLE/google/g => +6 bytes)

আহহহঃ পরীক্ষার মামলা!

"GOGGLE":prgmG
               6
"BING":prgmG
               4
"GOOGLE":prgmG
           Error

20 বাইট: length(Ans)/(Ans≠"google। আপনার ক্ষেত্রেও ভুল আছে; যদি বড় হাতের অনুমতি দেওয়া হয় তবে এটি 14 বাইট যাইহোক, আনসের মাধ্যমে তর্কগুলি পাস করার জন্য এটি বৈধ।
lirtosiast

AGOOGLE7 দিতে হবে, সঠিক? এবং আপনার কোড আকারে প্রোগ্রামের শিরোনামটি গণনা করা উচিত নয়, তাই 10 বাইট বিয়োগ করুন।
lirtosiast

ত্রুটি: আমি সাবস্ট্রিংগুলি ভাবছিলাম। দয়া করে আমাকে ক্ষমা করুন।
কনর ও'ব্রায়েন

1
@ থমাসকওয়া কোডটি দিয়ে আমি আপনার মন্তব্যটি দেখিনি। এটি ঠিক তাই ঘটে যে আমরা উভয়ই একই সমাধানকে হোঁচট খেয়েছি। তবে আপনি যদি বিশ্বাস করেন যে আপনি theণ প্রাপ্য, তবে ক্রেডিট আপনারই হবে। ^ _ ^ ( সম্পাদনা করুন যদি আপনি কোডটি পড়েন তবে এটি ঠিক একই জিনিস নয়))
কনর ও'ব্রায়েন

@ লিরিটোসিস্ট length(দুটি বাইট, এটি আপনার সংখ্যা 21 এবং 15 বাইট তৈরি করবে।
টিমটেক

23

এপিএল (14)

(⍴÷'google'∘≢)

ব্যাখ্যা:

  • : দৈর্ঘ্য
  • ÷: দ্বারা বিভক্ত
  • 'google∘≢: যুক্তি 'google'এর সমান নয় ।

স্ট্রিং, যা যদি স্ট্রিং সমান না 1 ভাগ করা হয়েছে এর দৈর্ঘ্য দেয় google(যা দৈর্ঘ্য ফিরিয়ে দেয় অপরিবর্তিত), অথবা 0 দ্বারা স্ট্রিং যদি না সমান google(একটি ত্রুটি দান)।


11
আমি মনে করি আপনার প্যারেনগুলি গণনা করার দরকার নেই, কারণ এগুলি ছাড়া এগুলি কোনও ভেরিয়েবলের জন্য বরাদ্দ করা যেতে পারে।
jimmy23013

একক-চর যুক্তিতে ব্যর্থ হয়। এর সাথে প্রতিস্থাপন করে ঠিক করুন । এছাড়াও, আপনি এর অপারেশনগুলিকে অদলবদল করে এটিকে আরও শীতল দেখায় করতে পারেন । ওহ, প্যারেন্সগুলি সরাতে ভুলবেন না। সমস্ত-ইন-অল-ইন:≢÷≢∘'google'
অ্যাডাম

21

পাইথন 3, 30 বাইট

lambda u:[len][u=='google'](u)

1-উপাদান ফাংশন তালিকাকে সূচক করে, প্রিডিকেট (= 1) IndexErrorহলে একটি উত্থাপন করে । যেমন কার্যকরী।u=='google'True

অনেকগুলি বৈকল্পিক। কি দারুন:

lambda u:[len(u)][u=='google']
lambda u:len([u][u=='google'])

যদি চ্যালেঞ্জটি উল্টানো হয় ( "গুগল" নয় সমস্ত কিছুতে ত্রুটি ), একটি চর সংরক্ষণ করতে পারে:

lambda u:{'google':len}[u](u)

তবে আপনি ইতিমধ্যে দৈর্ঘ্য জানেন, তাই এটি হার্ডকোড করুন।


অজগর 2.7 এর জন্যও কাজ করে
নুডল 9

কোনও কারণে, আমি এই সমাধানটি পছন্দ করি।
২২:২০

19

হাস্কেল, 24 বাইট

g s|s/="google"=length s

আউটপুট:

Main> g "google"

Program error: pattern match failure: g "google"

Main> g "bing"
4

15

সিজেম, 16 টি অক্ষর

{_,\"google"=!/}

যদি স্ট্রিং গুগল না হয় এবং অন্যথায় 0 দ্বারা দৈর্ঘ্যকে 1 দ্বারা বিভক্ত করে । ধারণাটি উপন্যাস নয়, তবে আমি এটি স্বাধীনভাবে নিয়ে এসেছি।

এটি অনলাইনে চেষ্টা করুন।

কিভাবে এটা কাজ করে

_                 Push a copy of the string on the stack.
 ,                Compute the length of the copy.
  \               Swap the length and the original string.
   "google"=      Push 1 if the string is "google", 0 otherwise.
            !     Apply logical NOT. Maps 1 to 0 and 0 to 1.
             /    Divide the length by the Boolean.

যথেষ্ট উত্সাহের ব্যাপার হল, একটি পুরো প্রোগ্রাম খাটো (15 বাইট) হল: q_,\"google"=!/। এই পোস্টটি দেখার আগে এটি বিকাশ করেছে। নোট করুন যে এটি পুরো ইনপুট নেয় (যা আপনি যে কোনও উপায়ে একটি কার্যকারিতা হিসাবে দেখবেন বলে মনে হয়)। দুর্ভাগ্যক্রমে, আপনি এটি ব্যবহার করতে পারবেন না, যেহেতু এটি কোনও ফাংশন চেয়েছে :(
এরিক দ্য আউটগোল্ফার

15

অক্টাভা, 63 বাইট

আমি জানি এটি মাতলাব সমাধানের চেয়ে দীর্ঘতর (যা অক্টাভাতেও কাজ করবে) তবে এটি বিশেষত মন্দ। আমি একটি বেনাম ফাংশন (অশুভ) তৈরি করছি সেল অ্যারে (অশুভ) আক্ষরিক (অশুভ) সমন্বিত ফাংশন হ্যান্ডলগুলি কলব্যাক ফাংশনের উপর নির্ভরশীল (নিজেই, এইভাবে পুনরাবৃত্তিযোগ্য, দুষ্টু) যা অবশ্যই তর্ক দিয়ে যেতে হবে। পরে আমি আর একজন বেনামী মূলত স্ট্রিং যুক্তি ফাংশন হ্রাস করে এবং এর দ্বিতীয় যুক্তি সমাধান করা হয়েছে তৈরি fহিসাবে f(খুব খারাপ)। যে কোনও বুদ্ধিমান মানুষ কখনই এটি করতে পারে না, কারণ এটি পার্ল বা রেজেক্স (বা সিজাম / পাইথ / অন্য কোনও এসওল্যাং) এর মতো প্রায় অপঠনযোগ্য।

সুতরাং যদি স্ট্রিংটি 'গুগল' না হয় তবে সেল অ্যারের দ্বিতীয় আর্গুমেন্ট বলা হবে যা স্ট্রিংয়ের দৈর্ঘ্যকে আউটপুট করে। অন্যথায় প্রথম ফাংশনটি ডাকা হবে, যা কলব্যাক হিসাবে প্রেরণ করা হয়েছে (এবং নিজেকে কলব্যাক হিসাবে নিজেকেও প্রেরণ করে) যা পরে এটি নিজেই ফাংশন। ত্রুটিটি মূলত কিছু সর্বাধিক পুনরাবৃত্তি গভীরতার ত্রুটি।

f=@(s,f){@()f(s,f),numel(s)}{2-strcmp(s,'google')}();@(s)f(s,f)

2
বেশিরভাগ ভাষায় সেগুলি মন্দ নয়। এবং এটি কোড গল্ফ, গ্রহের সবচেয়ে অপঠনযোগ্য কোডগুলির কিছু এখানে বিদ্যমান :)। দুর্দান্ত হ্যান্ডেল বিটিডাব্লু
বার

9
evalসত্যিই এভিএল করতে আমি এখানে কিছু মিস করছি :-)
লুইস মেন্ডো

12

জাভাস্ক্রিপ্ট, 25 বাইট

দুর্দান্ত এবং সাধারণ জাভাস্ক্রিপ্ট উদাহরণ:

e=>e!='google'?e.length:g

যদি "গুগল" প্রবেশ করানো হয় তবে এটি পাস করে ReferenceError

উদাহরণ

alert((e=>e!='google'?e.length:g)('test'))


2
বাহ, জাভাস্ক্রিপ্টে লামদা ফাংশনগুলির জন্য একটি শর্টহ্যান্ড আছে বলার জন্য ধন্যবাদ!
টোম জাটো

3
@ টোমাজাটো ক্যাভেট: তারা ES2015 এ একেবারে নতুন , তাই সমর্থন এখনও পৃথক হয়।
আনকো

11

এপিএল, 19 17 বাইট

{⍵≡'google':⍟⋄≢⍵}

এটি একটি নামবিহীন মোনাডিক ফাংশন যা ইনপুট থাকলে সিনট্যাক্স ত্রুটি নিক্ষেপ করবে google। কোনও কিছুর প্রাকৃতিক লগারিদম নেওয়ার চেষ্টা করে এটি সম্পন্ন হয়।

{
 ⍵≡'google':          ⍝ If the right argument is "google"...
            ⍟⋄        ⍝ Compute log(<nothing>), which brings only sadness
              ≢⍵      ⍝ Otherwise compute the length
}

এটি অনলাইনে চেষ্টা করুন

ডেনিসকে দুটি বাইট সংরক্ষণ করে!


"স্প্ল্যাট" নামে অনানুষ্ঠানিকভাবে পরিচিত। এই ব্যবহারের জন্য খুব উপযুক্ত নাম।
অ্যাডাম

9

আর, 46 বাইট

g=function(x)ifelse(x!="google",nchar(x),)

আমি ভুল পড়া না হলে, আসল পোস্টটি কখনই নির্দিষ্ট করে না যে কোডটি সঠিক বাক্য গঠন হতে হবে।

উদাহরণ:

> g("bing")
[1] 4
> g("google")
Error in ifelse(x != "google", nchar(x), ) : 
  argument "no" is missing, with no default

আমি ইফেলস স্টেটমেন্টের "না" প্যারামিটারের জন্য কখনই কিছু যোগ করি নি তাই এই পরামিতিটি সরিয়ে নেওয়া হলে এটি ত্রুটি ফিরিয়ে দেবে।


10
এখানে কিছুটা সংক্ষিপ্ত:g=function(x)nchar(x)[[x!="google"]]
ফ্লোডেল

9

পার্ল, 31 29 বাইট

sub{$_=pop;y///c/!/^google$/}

-2 বি manatwork ধন্যবাদ

ব্যবহার:

sub{$_=pop;y///c/!/^google$/}->("google")

যদি আমি কোনও ফাংশন না দিয়ে কোনও প্রোগ্রাম নিয়ে পালাতে পারি তবে নিম্নলিখিতটি কেবলমাত্র 20 বাইট (+1 বাইট কমান্ড লাইন) সহ বৈধ হবে

$_=y///c/!/^google$/

ত্রুটি শূন্য দ্বারা বিভাজন।

ব্যাখ্যা:

y///cদৈর্ঘ্যটি ফিরিয়ে দেয়, তারপরে !/^google$/0 জিপি যদি ইনপুট 'গুগল' এর সাথে মেলে return

ব্যবহার:

perl -p entry.pl input.txt

2
আপনি এটা একটি বেনামী ফাংশন বানাতে পারে: sub{…}। (তারপরে আপনি এটি পছন্দ করেন call sub{…}->("google"))
manatwork

এর $_!=googleপরিবর্তে 1 বাইট সংরক্ষণ করুন!/^google$/
গ্যাব্রিয়েল বেনামি

@ গ্যাব্রিয়েল বেনামি আমি ভয় করি যে !=স্ট্রিংয়ের তুলনায় কাজ করবে না ...
দাদা

7

হাস্কেল - 30 টি অক্ষর

g"google"=error"!";g s=length s

>g "google"
 *Exception: !
>g "str"
 3

6
ত্রুটির জন্য উদ্দীপনা চিহ্ন কেন? একটি খালি স্ট্রিং খুব কি না?
ক্রিজ্জেফিটজ

1
আমি এটিকে পরিবর্তন করতে পরামর্শ দিতে চেয়েছিলাম x=x;g"google"=x;g s=length s, তবে কোনও কারণে, <<লুপ>> ব্যতিক্রমগুলি জিসিসি তে ছুঁড়ে দেওয়া হয়নি।
ক্রিটজেফিটস

17
g s|s/="google"=length sপ্রয়োজনীয়তার এড়াতেerror
chs

7

পাইথন 3, 35 বাইট

lambda n:len(n)if n!='google'else d

1
@ ফ্রাইআম দ্য এজিগম্যান আসলে ১ b টি বিট খাটো। এক্সডি
ডিয়েগোডিডি

1
@ ফ্রাইআম দ্য এজিগম্যান: ভাল কৌশল কিন্তু আইডি খালি স্ট্রিং দিয়ে কাজ করে না:(lambda n:len(n)*(n!='google')or d)('')
পাবউক

@ পবাউক বেশ ডান, এটি নির্দেশ করার জন্য ধন্যবাদ।
FryAmTheEggman

7

জাভা 7: 53 52 বাইট

int g(String _){return"google"==_?0/0:_.length();} 

উপরের কোডটি ArithmeticExceptionশূন্য দ্বারা এবং Stringঅন্য যে কোনও জন্য বিভাজনের জন্য নিক্ষেপ করবে google==উল্লেখযোগ্য যে রেফারেন্সের তুলনা করে এবং Stringঅবজেক্টগুলির জন্য কাজ করবে না ।

জাভা 8: 29 বাইট

(নীচের মন্তব্যে প্রদত্ত পরামর্শের ভিত্তিতে)

s->s=="google"?0/0:s.length()

1
আপনি জাভা 8 এর s->(s.equals("google")?null:s).length();
ল্যাম্বদা ঘোষণাটিও

3
"উল্লেখ্যযোগ্য যে == রেফারেন্সের তুলনা করে এবং স্ট্রিং অবজেক্টের জন্য কাজ করবে না।" প্রকৃতপক্ষে, সমস্ত স্ট্রিংগুলি অবজেক্টস, তাই ==জাভাতে স্ট্রিংগুলির তুলনা করা সাধারণত কার্যকর হবে না (যদি না আপনি স্ট্রিং ইন্টার্নিংয়ের উপর নির্ভর করেন যা ভাল, খারাপ)। সম্ভবত আপনি জাভাস্ক্রিপ্ট নিয়ে বিভ্রান্ত হয়েছেন?
জেনগেভ

1
@ জেংকেভ যদি তারা উভয় লিটারেরাল হয় তবে এটি কাজ করবে যেহেতু এটি স্ট্রিং পুলে উল্লেখ করা একই জিনিস is অনুমানটি একটি লিটারেল দেয় এবং এখানে এটি একটি লিটারেরাল তাই এটি কাজ করবে।
ইয়াসিন হাজাজ

2
@ ইয়াসিনহাজাজ আমি সম্মত হই যে এই অনুমানটি এটি আক্ষরিক হিসাবে দেয় তবে এটি কেবল একটি উদাহরণ। স্টিডিন থেকে ইনপুট দেওয়া থাকলে বা ফাংশনটি আলাদাভাবে সংকলিত অন্য শ্রেণি থেকে কল করা থাকলে সম্ভবত ফাংশনটি একই করা উচিত। যে কোনও ক্ষেত্রে, সংকলক অপ্টিমাইজেশনের উপর নির্ভর (স্ট্রিং ইন্টার্নিং) একটি দুর্বল ধারণা, যা আমি মূলত বলেছিলাম said
জেংকেভ

7

সি ++ 11, 54 (কোড) + 14 (# অন্তর্ভুক্ত) = 68

ঠিক আছে, শূন্য দ্বারা ভাগ করা কেবল অপরিজ্ঞাত আচরণ, যা আমি ত্রুটি বলব না। সুতরাং আমার পদ্ধতির।

#include<ios>
[](std::string s){return s!="google"?s.size():throw;};

ব্যবহার

[](std::string s){return s!="google"?s.size():throw;}("google");

1
আপনি size()2 বাইট সংরক্ষণ করতে কল করতে পারেন । সি ++ এ, আপনি জেনেরিক ল্যাম্বডাস ব্যবহার করতে পারেন এবং এটি std::stringদ্বারা প্রতিস্থাপন করতে পারেন auto। আপনার std::stringপরিবর্তে এটির পরিবর্তে একটি প্রকৃত পাস করা দরকার const char*
ইসানায়ে

@ আইসানা আমি জানি না std::stringযে size()পদ্ধতি আছে, তার জন্য ধন্যবাদ। আমি সি ++ 14 এ জেনেরিক ল্যাম্বডাস সম্পর্কে সচেতন, তবে এটি কীভাবে আমাকে সহায়তা করবে তা আমি জানি না, যেহেতু "string"হয় const char*এবং না std::string
জেরেজস

1
@ জিরিজেস এর std::stringরয়েছে size()এবং length()কারণ এটি উভয় একটি ধারক এবং একটি স্ট্রিং । যেমন auto, আপনি এর (std::string("google"))পরিবর্তে ল্যাম্বডাকে কল করবেন ("google")। প্রশ্নটি কেবল "স্ট্রিং" কী তা নির্দিষ্ট না করেই "1 স্ট্রিং গ্রহণ করে" বলে।
ইসানায়ে

@ আইসানা সি ++ 14 এও "google"sএকটি নির্মাণ করতে হবে std::string:)
কোয়ান্টিন

@ জিজারেজ আপনি কেবল throw;ট্রিগার করতে পারেন std::terminate()(কারণ এখানে কোনও বর্তমান ব্যতিক্রম নেই)।
কোয়ান্টিন

6

এমএমপিএস, 28 বাইট

g(s) q $S(s'="google":$L(s))

ব্যবহার:

>w $$g^MYROUTINE("bing")                                      
4
>w $$g^MYROUTINE("google")

<SELECT>g^MYROUTINE

কেন? হ্যাঁ, $S[ELECT]মূলত একটি কমপ্যাক্ট মাল্টি-ক্লজ যদি-অন্য বিবৃতি হয় - প্রায় হাস্কেল বা জং এর মতো কোনও ভাষায় প্যাটার্ন-ম্যাচের মতো। হাস্কেল বা মরিচা বাদে, নিদর্শনগুলি ক্লান্তিহীনতার জন্য পরীক্ষা করা হয় না, কারণ "সংকলন-সময় সুরক্ষা" ধারণাটি এমএমএমএসের জন্য সম্পূর্ণ এলিয়েন। সুতরাং যদি আপনার ইনপুট এমন কোনও প্যাটার্ন হয় যার জন্য আপনি অ্যাকাউন্ট করেন নি, আপনি একটি সুন্দর রানটাইম ত্রুটি বলে মনে করেন <SELECT>


6

রুবি, 34 30 27 26

->x{x=='google'?t: x.size}

অজানা tব্যতিক্রম উত্থাপন।

->x{x=='google'?fail():x.size}

সম্পাদনা করুন: সম্পূর্ণরূপে পঠনযোগ্য এবং সুস্পষ্ট সংস্করণ যা খাটো ...

->x{x[x=~/^(?!google$)/..-1].size}

পুরাতন: অন্যান্য ধারণাগুলির সাথেও একই রকম লাগে seems ArgumentErrorএক্স 'গুগল' হলে উত্থাপন করবে ।


2
কেন এই প্রথম বন্ধনী? x=='google'?t: x.size
manatwork

6

জাভাস্ক্রিপ্ট, 47 বাইট

সুন্দর এবং সহজ।

সম্পাদনা করুন: এখন নিয়ম মেনে চলুন

function f(g){if(g=="google")a;return g.length}

পরীক্ষামূলক

ত্রুটি নিক্ষিপ্ত

function f(g){if(g=="google")a;return g.length}

alert(f("Hello"))
alert(f("google"))
alert(f("hi"))

কোনও ত্রুটি নিক্ষেপ করা হয়নি

function f(g){if(g=="google")a;return g.length}

alert(f("Hello"))
alert(f("bing"))
alert(f("hi"))


প্রযুক্তিগতভাবে, এটি অপের চশমা পূরণ করে না। এই ফাংশনটি দৈর্ঘ্যটি সতর্ক করে তবে ফেরত দেয় undefined
চরম বিশৃঙ্খল

@ বুঙ্গল এখন কেমন আছে?
বিটা ক্ষয়

1
@ বুঙ্গল আমি দেখতে পাচ্ছি আমি ভুলে গিয়েছিলাম যে একটি রিটার্ন দরকার ছিল
বিটা ডেকে

1
ES6 এর তীর ফাংশন এবং টার্নারি অপারেটর (যদি পরিবর্তে) ব্যবহার করে আপনি এটি আরও কিছুটা
কড়াতে পারেন

1
@ বেটাডেকে প্রথম আসলতা; আমি তা সম্মান করি.
Carles Alcolea

6

সি, 66 48

মূল:

int l(long*s){return strlen(s)/((*s&~(-1L<<56))!=0x656c676f6f67);}

ওএসএক্স জিসিসি,
l("duck");রিটার্ন 4,
l("google");কারণগুলি ব্যবহার করে Floating point exception: 8

অন্যান্য প্ল্যাটফর্মে, ধ্রুবকগুলি শেষের জন্য সামঞ্জস্য করতে হতে পারে।

সংক্ষিপ্ত :

কম কৌশল, একই ফলাফল।

 l(int*s){return strlen(s)/!!strcmp(s,"Google");}

বাহ, এটি সেখানে কিছু আকর্ষণীয় যুক্তি। যদি আমি গোল্ফির অংশটি সঠিকভাবে বুঝতে পারি তবে আপনি কোনও এককভাবে একক, দৈত্য সংখ্যায় (প্রায় একটি হ্যাশের মতো) ফিট করার জন্য প্রথম ছয় অক্ষর স্থানান্তরিত করছেন, যা স্ট্যাকটি সামান্য-এন্ডিয়ান হওয়ার কারণে, "গুগল" হয়ে গেছে, তবে পিছনে ( 0x656c676f6f67= elgoog)। আমি মনে করি এই উত্তরটি আমাদের মধ্যে যারা তাদের জন্য এই ধরণের পাগল নিম্ন-স্তরের সামগ্রীর প্রশংসা করে তাদের জন্য একটি ব্যাখ্যা দরকার।
ব্র্যাডেন সেরা

আপনার মূলত এটি আছে। এটি কেবল একটি 64 বিট সংখ্যায় স্ট্রিংটি সঞ্চয় করে মেমরিটিকে কাস্ট করে। এডিয়েননেস এটি x86 আর্কিটেকচারে 'পশ্চাদপসরণ' করে তোলে। পাঠ্যটি কেবল 7 বাইট দখল করে, তাই মুখোশটি মেমোরিতে পরবর্তী যা কিছু লুকিয়ে রাখে। এটি একটি মজাদার কৌশল, তবে আমি মনে করি '!! strcmp (s, "google")' আসলে খাটো।
আশেলী

1
যাইহোক, +1। স্পষ্টভাবে. এছাড়াও, আমি মনে করি আপনি এটি int 4 টি অক্ষর মুছে ফেলে ছোট করতে পারবেন ।
ব্র্যাডেন সেরা

কিছু টাইপ করার পরে , আমি এটি সন্ধান! তাহলে char *, একক সঙ্গে 8-bits, এর casted হয় long *, একক সঙ্গে 64-bitsসঠিকভাবে পুনরায় বরাদ্দ হচ্ছে না, গাদা স্থান সেই 8 বাইট ডাটা নষ্ট হয়ে ওঠে এবং একটি একক সংখ্যা হিসাবে গণ্য ( 8*8 = 64)। এজন্য আপনি প্রথম 6 টি অক্ষর, + NUL + জঞ্জাল পান। এটা খুব চালাক। বিপজ্জনকও। ভাবছেন কেন এটি সেগফোল্ট হয় না। 8th ম ময়লা আবর্জনা বাইট সীমা ছাড়িয়ে গেছে, না?
ব্র্যাডেন সেরা

আমি আপনার বিশ্লেষণ তাকান। আপনি সঠিক, শিফটটি 54 হওয়া উচিত ছিল, 54 নয় Also এছাড়াও, আমি দূষিত শব্দটি ব্যবহার করব না। স্মৃতি একই, বিটগুলি কেবল আলাদাভাবে ব্যাখ্যা করা হয়। প্রযুক্তিগতভাবে, আবর্জনা বাইট অ্যাক্সেস করা সংজ্ঞায়িত আচরণ, এবং আসলে সেগফল্ট হতে পারে। ব্যবহারিকভাবে, সেই বাইটটি অবশ্যই বাকী স্ট্রিংয়ের মতো একই আইনী মেমরি ব্লকে থাকে এবং সাধারণত এই ব্লকগুলি (হিপ, স্ট্যাক, ধ্রুবক) শব্দ মাপের ইউনিটে সর্বনিম্ন বরাদ্দ করা হয়। সুতরাং মেমরিটি প্রোগ্রামটির সাথে সম্পর্কিত, এটিতে স্ট্রিং ব্যতীত অন্য কিছু রয়েছে।
এশেলি

6

রুবি, 29 বাইট

আমি @ বারসুনহোর প্রথম প্রয়াসের সাথে খুব অনুরূপ কিছু নিয়ে প্রথম এসেছি, তবে আমার কাজটি কিছুটা দীর্ঘ ছিল এবং আমার কাজ শেষ হওয়ার আগে তিনি তার পোস্ট করেছিলেন। তার 30 বাইট সম্পাদনার আগে এটি নিয়ে এসেছিল :)

->s{s[/^(?!google$).*/].size}

ব্যবহারের উদাহরণ:

$ irb
2.2.1 :001 > f = ->s{s[/^(?!google$).*/].size}
 => #<Proc:0x007fa0ea03eb60@(irb):1 (lambda)> 
2.2.1 :002 > f[""]
 => 0 
2.2.1 :003 > f["bing"]
 => 4 
2.2.1 :004 > f["google"]
NoMethodError: undefined method `size' for nil:NilClass
  from (irb):1:in `block in irb_binding'
  from (irb):4:in `[]'
  from (irb):4
  from /Users/daniel/.rvm/rubies/ruby-2.2.1/bin/irb:11:in `<main>'

সম্পাদনা করুন: দুই বছর এবং পরে কিছু রুবি সংস্করণ

রুবি , 25 বাইট

->s{+s[/^(?!google$).*/]}

String#sizeনতুন আনরি প্লাস দিয়ে প্রতিস্থাপন করা হয়েছে । এটি অনলাইন চেষ্টা করুন!


ঝরঝরে, আমি এটি কাজ করতে পারিনি (আমি ^ম্যাচগ্রুপের বাইরে বেরিয়ে এসেছি)।
বোরসুনহো

@ বারসুনহো আমাকে স্বীকার করতে হবে আমি কেবলমাত্র "জোরপূর্বক বাধ্য" হয়েছিলাম, যতক্ষণ না আমি যে ফলাফল চেয়েছিলাম তা পেয়েছি :) আমি মনে করি .*শেষ পর্যন্ত এটি কাজ করে।
ডানিরো

যদি ইনপুট স্ট্রিংয়ের একাধিক লাইন থাকে এবং তার নিজস্ব লাইনে গুগল থাকে তবে ব্রেক হয়। আমি মনে করি /\A(?!google\Z).*/mএটি ঠিক করে (তিন বাইটের দামে, যদিও)। ^এবং $শুরুতে এবং লাইনের শেষ মেলে, যখন \Aএবং \Zশুরুতে এবং সামগ্রিকভাবে স্ট্রিংয়ের শেষ প্রান্ত মেলে।
হিস্টোক্র্যাট

@ ইতিহাসবিদ তবে আমি মনে করি না আপনি একাধিক লাইনের সাথে স্ট্রিং গুগল করতে পারবেন;)
ড্যানিয়েরো

4

> <>, 55 বাইট

i:0(?v
31&l~<v0"google"~~.?%2l
$v?(2l<S?*=2l=6:+={
&<;n

মনে হয়েছে আমি এটিকে যেতে চাই, আমার সেরা গল্ফিং প্রচেষ্টা বা অ্যালগরিদম নয় not প্রতি সেফ কোনও ক্রিয়াকলাপ নয়, তবে আমি মনে করি এটি এখনও যোগ্য হওয়া উচিত। আমি আরও ভাল সংস্করণে সম্পাদনা করতে পারি কিনা তা আমি দেখতে পাব।

যদি আপনাকে দৈর্ঘ্য মুদ্রণের অনুমতি দেওয়া হয় এবং তারপরে ত্রুটি হয় তবে এখানে 46 বাইট সমাধান রয়েছে:

i:0(?v
2lnl~<v0"google";?%
$;?(2l<S?*=2l=6:+={

49 এই প্রকৃতির বাইট পূর্ববর্তী সমাধান:

i:0(?v
l0nl~<v;!?=7
:;?(2l<S?*=2l=6:+=@@g3
elgoog

আমি আগ্রহ আছে যদি একটি ব্যাখ্যা দিতে খুশি, এবং দয়া করে আমার উত্তর কিছু ভুল আছে বা আপনার যদি গল্ফিং পরামর্শ আছে তা আমাকে জানান।


4

জাভাস্ক্রিপ্ট ES6, 51 27 25 বাইট

হাই, আমি কোড গল্ফে নতুন তাই এটি সম্ভবত আরও বেশি গল্ফ করা যেতে পারে, তবে এখানে এটি যায়:

_=>_=="google"?a:_.length

g=_=>_=="google"?a:_.length

g=_=>{if("google"==_)throw Error();return _.length}

এবং কিছু পরীক্ষা:

(_=>_=="google"?a:_.length)("bing")//4
(_=>_=="google"?a:_.length)("google")// Error: a is not defined

g("bing")// returns 4
g("google")// Error: a is not defined

সম্পাদনা: যুক্ত? প্রতিস্থাপন করতে এবং একটি অনির্ধারিত বস্তুর সাথে ত্রুটি প্রতিস্থাপন করতে।

সম্পাদনা 2: আমি বুঝতে পারি যে আমার বাইট গণনাটি ভুল ছিল এবং জি = কে সরিয়ে ফেলেছে


4

গল্ফস্ক্রিপ্ট, 14 16 টি অক্ষর

{.,\'google'=!/}

অন্যান্য অনেকের মতোই কেবল ইনপুটটির সাথে তুলনা 'google'করে ফলাফলের বিপরীত দ্বারা দৈর্ঘ্যকে বিভক্ত করে।

প্রোগ্রামসমূহ উদাহরণ:

  • সঙ্গে'bing' (আউটপুট: 4)
  • সঙ্গে'google' (আউটপুট: ত্রুটি: শূন্য দ্বারা ভাগ করা হবে প্রয়াস করা হয়েছে। )

@ ডেনিস আমি আপনার বক্তব্যটি দেখতে পাচ্ছি। মূল আকারে এটি হ'ল পুনরায় ব্যবহারযোগ্য নয় (আপনি বলতে পারেন না যে কোনও তালিকার উপরে কোড প্রয়োগ করুন)। এছাড়াও আমি বুঝতে পারি নি যে আপনি এটি পোস্ট করার আগে আপনি সিজেমে ভালভাবে একটি কার্যত অভিন্ন উত্তর লিখেছিলেন (আসলে আমি এখন পর্যন্ত কেবল ভাষা হিসাবে সিজেএম সম্পর্কে সচেতন ছিলাম)। আপনার সমাধানের জন্যও +1।
PSWg

4

আটকে আছে , 16 বাইট

s_l1u"google"=-/

বেশিরভাগ লোকের কাছে একই পদ্ধতি অনুসরণ করা, "গুগল" ইনপুট হওয়ার কারণে 0 টি ত্রুটির দ্বারা বিভাজন ঘটায়।


4

উইন্ডোজ ব্যাচ, 118 টি অক্ষর

IF /I "%string%"=="google" exit
echo %string%> string.txt
for %%? in (string.txt) do ( SET /A stringlength=%%~z? - 2 )

আউটপুট% স্ট্রিংলেেন্থ%।

সম্পূর্ণ কোড:

@echo off
del string.txt
cls
echo Type your string
echo.
set /p string=String:
IF /I "%string%"=="google" goto err
echo %string%> string.txt
for %%? in (string.txt) do ( SET /A stringlength=%%~z? - 2 )
cls
echo %stringlength%
pause
del string.txt
:err
color c
echo There seems to be an error with your input...
pause>nul

জোশুয়া হানিগের উত্তর থেকে এখানে পরিবর্তন করা হয়েছে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.