ভিন্ন চিঠিটি সন্ধান করুন


10

আপনি এরকম ধাঁধা দেখতে পেয়েছেন:

এটি খুঁজুন 0:
OOOOOOOOOOOOOOOOOOOO0OOOOOOOOOOOOOOOOOO

চ্যালেঞ্জটি হ'ল এমন একটি প্রোগ্রাম লিখুন যা কোনও চিত্র দেওয়া বিভিন্ন অক্ষরের সূচি খুঁজে পায়।

ইনপুট

ইনপুট হবে একটি Image। ইমেজ গঠিত হবে এক লাইন এর কালো টেক্সট Helvetica 24 পয়েন্ট। একটি সাদা পটভূমিতে ফন্ট । পাঠ্যটি দুটি অক্ষরের একটি নির্বাচন থেকে গঠিত: একটি অক্ষর যা পুনরাবৃত্তি হয় এবং একটি অক্ষর যা কেবল একবার প্রদর্শিত হয়। এই ক্ষেত্রে:

নমুনা ইনপুট

আউটপুট

আউটপুট হবে একটি Integer, বিভিন্ন অক্ষরের সূচক। উপরের উদাহরণে, আউটপুট হবে 4। (নোট করুন যে স্ট্রিং সূচকগুলি শুরু হয়0 )

প্রোগ্রাম স্পেসিফিকেশন

কোড গল্ফের জন্য যথারীতি, সংক্ষিপ্ততম প্রোগ্রামটি জয়ী হয়।


পরীক্ষার কেস

 => 10
 => 11
 => 5
 => 16
 => 10
 => 21
 => 20
 => 13
 => 11
 => 4
 => 7


2
পেডেন্টিক নোট: আপনার আসল-বিশ্বের উদাহরণটি প্রতি সেজে ধাঁধা নয়। এটি মজাদার চোখের খেলা আরও বেশি।
জাচ গেটস

কিভাবে এই রান?
ইন্টবুলস্ট্রিং

এটি একটি কোড গল্ফ, তাই সংক্ষিপ্ততম প্রোগ্রাম যা প্রতিটি উদাহরণের উত্তরকে সাফল্যের সাথে আউটপুট করে।
এএমএসিবি

2
নোট করুন যে কয়েকটি ভাষার সংক্ষিপ্ত উত্তর আসলে ফলাফলগুলি হার্ড-কোডিং এবং ইনপুট চিত্রের আকারের মতো কোনও কিছুর উপর ভিত্তি করে একটি চয়ন করতে পারে (যা আমি মনে করি না এটি অনুমোদিত নয়)।
ব্যবহারকারী81655

1
@ এমএএসিবি "যদিও উদাহরণগুলির মধ্যে কোনওটি অন্তর্ভুক্ত করা হয়নি", তবে এটি পরিবর্তন করা ভাল ধারণা হতে পারে;)। এছাড়াও আমরা হ্যান্ডেল করতে হবে ন্যূনতম সংখ্যা কত? (কমপক্ষে 3 আমি অনুমান করি, বা আমরা এটির চেয়ে বেশি ধরে নিতে পারি?) সেই সর্বনিম্নের জন্য একটি পরীক্ষার কেসও থাকা উচিত।
মার্টিন এন্ডার

উত্তর:


6

ডায়ালগ এপিএল , 31 32 বাইট

{1⍳⍨+⌿∘.≡⍨{⍵/⍨~∧⌿⍵}¨⍵⊂⍨2>/∧⌿1,⍵}

⎕IO←0 সূচকগুলি পেতে 0 (প্রতি ওপি প্রতি) দিয়ে শুরু হয় এবং এটি অনেকগুলি এপিএল সিস্টেমে যাইহোক ডিফল্ট।

1,⍵
∧⌿প্রতিটি কলামের জন্য সাদা পিক্সেলের একটি কলাম (মার্জিন নিশ্চিত করার জন্য) বুলিয়ান প্রস্তুত করুন যদি
2>/প্রতিটি বর্ণের বাম প্রান্তে অল-সাদা (উল্লম্ব এবং কমানো) বুলিয়ান
⍵⊂⍨প্রতিটি সত্য থেকে শুরু করে ব্লকের মধ্যে বিভক্ত হয়।
{… প্রতিটি কলামের প্রতিটি ব্লক
∧⌿⍵বুলিয়ানের জন্য যদি অল-হোয়াইট (উল্লম্ব এবং কমানো)
⍵/⍨~কলামগুলি [সমস্ত সাদা] নয়
∘.≡⍨প্রতিটি উপাদানকে প্রতিটি
+⌿ব্লকের অভিন্ন ব্লকের সংখ্যার সাথে একত্র করে (উল্লম্ব প্লাস-হ্রাস)
1⍳⍨ সূচী প্রথমটির (অর্থাত্‍ অনন্য উপাদান)

ধরে নিই ম্যাট্রিক্সে ছবিটি কালো (0) এবং সাদা (1) পিক্সেল এবং Iঅক্ষরের মধ্যে কমপক্ষে একটি অল-হোয়াইট পিক্সেল কলাম রয়েছে।

      f←{1⍳⍨+⌿∘.≡⍨{⍵/⍨~∧⌿⍵}¨⍵⊂⍨2>/∧⌿1,⍵}

"আমি !!":

      ⊢I←6 12⍴(13/1),(22⍴0 1 1),(5/1),0,(8/1),(10⍴0 1 1),13/1
1 1 1 1 1 1 1 1 1 1 1 1
1 0 1 1 0 1 1 0 1 1 0 1
1 0 1 1 0 1 1 0 1 1 0 1
1 1 1 1 0 1 1 1 1 1 1 1
1 0 1 1 0 1 1 0 1 1 0 1
1 1 1 1 1 1 1 1 1 1 1 1
      f I
1

"Mmnmm":

      ⊢I←7 31⍴(94/1),0 0,(∊0 1⌽¨2/⊂12⍴6↑1 0 1 1),0 1,(62⍴1 1 1,(⊢,⌽)(14⍴0 1)),33/1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1     
      f I
2

আপনি কি পুরোপুরি সরাতে {⍵/⍨~∧⌿⍵}¨এবং কেবল সাথে থাকতে পারবেন না {1⍳⍨+⌿∘.≡⍨⍵⊂⍨2>/∧⌿1,⍵}?
lstefano

@ এলস্টেফানো তারপরে বিভিন্ন জায়গায় সাদা-স্পেসের অবস্থান থাকলে এটি কাজ করা বন্ধ করে দেয়।
অ্যাডম

আমি বুঝছি তুমি কি বলতে চাও.
lstefano

3

গণিত, 125 বাইট

StringCases[#,x:Except[StringCases[#~StringTake~3,x_~~___~~x_:>x][[1]]]:>Position[Characters@#,x]][[1,1,1]]-1&@*TextRecognize

আহ, ম্যাথমেটিকা ​​অন্তর্নির্মিত। খুব অবাক ব্যাপার. (এবং এত দীর্ঘ ...) উপর চালানো | /! : /; , /। / / 'এবং মি / এন-তে আলাদাভাবে ফুঁক দেয়।


এই কয়টি ইনপুট কাজ করে? আমার অনুলিপি প্রথম উদাহরণে কোনও পাঠ্যকে স্বীকৃতি দেবে না (পাইপ এবং বিস্ময়কর চিহ্ন) উদাহরণস্বরূপ। যদি আমি কিছু মিস না করি তবে এর সাথে আমার অভিন্ন পারফরম্যান্স রয়েছে Length[Split[Characters@TextRecognize@#][[1]]] &
এ সিমন্স

ওহো, স্প্লিট সম্পর্কে ভুলে গিয়েছে .... এবং এটি ম্যাথমেটিকার তৈরি টেক্সট শনাক্তকরণের উপর নির্ভর করে ... এবং আপনি কখনই এটি বিশ্বাস করতে পারবেন না।
ক্যালকুলেটরফলাইন

আমার তখন আলাদা সমাধান হিসাবে পোস্ট করব।
একটি সিমন্স

3

গণিত, 46 বাইট

Length@First@Split@Characters@TextRecognize@#& 

অন্যান্য গণিত সমাধান হিসাবে একই ব্যর্থতা একই TextRecognizeফাংশন উপর নির্ভর করে ।


বাইটস্যাভ:Length@First@Split@Characters@TextRecognize@#&
ক্যালকুলেটরফলাইন

@ ক্যাটস আরেফ্লাফি চিয়ার্স
একটি সিমন্স

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