ফেন্সপোস্টগুলি সন্ধান করুন


11

পটভূমি

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

ইনপুট

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

আউটপুট

আপনার আউটপুট হ'ল ইনপুট গ্রিডে আসল ফেনসপোস্টের সংখ্যা।

উদাহরণ

ইনপুট গ্রিড বিবেচনা করুন

|#|-|#|##
#||--|||#
###|#|--#
###-||--|
-#-|#-|#-
#---#-#-|
#-#-|#--|

এই গ্রিডে 5 জন প্রার্থী ফেনসপোস্ট রয়েছে তবে তাদের মধ্যে মাত্র 2 জন আসল বেড়াপোস্ট (সাহসী দেখানো হয়েছে)। সুতরাং সঠিক আউটপুট হয় 2

বিধি

আপনি একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন লিখতে পারেন। সর্বনিম্ন বাইট গণনা জয়, এবং মান লুফোলগুলি অনুমোদিত নয়।

অতিরিক্ত পরীক্ষার মামলা

ইনপুট:

##--
||##
-#|-
|#|#

আউটপুট: 0(0 প্রার্থী fenceposts)

ইনপুট:

-##|-##--
#|#-|#||-
--|-#|#||
##||||-##
||#|--|-|
-#|-#--|#
|####|#-#

আউটপুট: 0(5 প্রার্থী fenceposts)

ইনপুট:

#|--|---|-|#
####|##--||-
-|-##||#|---
-#|#-|-#-|||
#|-##--###|-
---#-||-#-##
#|---|###|-#
-|---#-#|#|#
|#--|####-|-

আউটপুট: 4(8 প্রার্থী fenceposts)

ইনপুট:

-|-||---##|#
---|######-#
####-##|#--|
|||##|#-||||
####-#-||-#|
---#--|#-#--
-|#-####-##-
#||-|-|-###|
|-##||-||-#-

আউটপুট: 5(7 জন প্রার্থী বেড়ী পোস্ট)

ইনপুট:

|#-|#|#-###|#-#
----#####|#----
|#--#-##-#|##-|
|#-|#-|--##||--
||#-#---##|||##
#|#-|||-#-#--||
--#|-||#|--|#|#
-#-|###||-#--#|
-#||-|#-##||##|
|--|-|||-##|-#|

আউটপুট: 4(9 জন প্রার্থী বেড়ী পোস্ট)

ইনপুট:

||-|-|-##-#-#-|#--#-
-##|-#|-#-##-|#|--|-
||#---###||-|#|##|-#
#||-#-#-|---|#||#|##
-#-###-##-|-#-|-#||#
##-#--#||-----||-|##
-|--#-#-#|---#-#|#-#
###|-|#-#|-|###|#-|#
#||#-#|--|-||#------
||##|-||#-|--#|#-#-#
|#-|-#-|-|--##-#|||#
-|#--#||##---##|-##-
#|-|-|-||-||#-#-|##-
|-#|##|-|#|#|--||#--

আউটপুট: 9(৩০ জন প্রার্থীর বেড়াচক্র)


সুতরাং সময়সীমার হয় |--...--|প্যাটার্ন ওয়াইল্ডকার্ড? এর অর্থ কি অনুভূমিক বেড়াগুলিতে কমপক্ষে 5 হাইফেন থাকতে হবে? স্বরলিপি দ্বারা আমি কিছুটা বিভ্রান্ত হয়ে পড়েছি।
BMac

@ বিম্যাক এগুলি একটি উপবৃত্ত হিসাবে অনুমিত হয়, যার অর্থ কিছু হাইফেন বাদ দেওয়া হয়েছে। আমি সম্মত হই যে এটি স্বচ্ছ স্বরলিপি নয়। আমাকে কিছুটা অস্পষ্ট বলে মনে করি।
Zgarb

যদি আমরা কোনও ফাংশন লিখি তবে এটি ইনপুট হিসাবে একটি 2D-অ্যারে আর্গুমেন্ট নিতে পারে। [[-,|,-],[#,#,-],[-,-,|]]?
21:58

@ ব্লুটোরেঞ্জ না, এই চ্যালেঞ্জে এটি একটি একক স্ট্রিং হওয়া দরকার।
জাগারব

উত্তর:


3

রুবি, 266 268 বাইট

এটি শুরু করার জন্য। ওভারল্যাপিং পরীক্ষার্থীদের অপসারণ করতে ভেরিয়েবলগুলি বস্তুগুলিকে নির্দেশ করে (2 ডি অ্যারের প্রতিটি উপাদানের জন্য 1-চর স্ট্রিং) এই বিষয়টি ব্যবহার করে।

যেমন। যদি আপনি নির্বাহ করেন তবে a="s";b=aউভয় aএবং bএকই স্ট্রিংকে নির্দেশ করুন। "test"=="test"সত্য সত্য, তবে "test".equal?("test")মিথ্যা প্রত্যাবর্তন, কারণ আমরা দুটি ভিন্ন স্ট্রিং অবজেক্ট তৈরি করেছি।

->d{c=->d,f,v,u{i=0
r=[]
d.map{|y|j=0
e=[]
y.map{|x|f[j]||=[]
f[j][i]=x
x==v ?e[1]?r<<e+[x]&&e=[x]:e[0]?e=[x]:e<<x :x==u&&e[0]?e<<x :e=[]
j+=1}
i+=1}
r}
y=c[d.split.map(&:chars),f=[],?|,?-]+c[f,[],?-,?|]
y.count{|x|y.all?{|q|x.equal?(q)||!(q+x).uniq!(&:object_id)}}}

আদর্শের উপর পরীক্ষার মামলাগুলি ।


1
আপনি এর mapপরিবর্তে ব্যবহার করতে পারেনeach
ক্রিশ্চিয়ান লুপাস্কু

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