অফিসিয়াল রুবি ইন্সপেক্টর মো


30

এখানে একটি সাধারণ ASCII আর্ট রুবি রয়েছে :

  ___
 /\_/\
/_/ \_\
\ \_/ /
 \/_\/

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

ভাগ্যক্রমে, কেবল 12 ধরণের ত্রুটিগুলিই সম্ভব এবং আপনার সরবরাহকারী গ্যারান্টি দেয় যে কোনও রুবিতে একাধিক ত্রুটি থাকবে না।

12 অপূর্ণতা 12 ভেতরের এক প্রতিস্থাপন মিলা _, /অথবা \একটি স্থান অক্ষর (সঙ্গে রুবি অক্ষর )। কোনও রুবীর বাইরের ঘেরের কখনও ত্রুটি থাকে না।

ত্রুটিগুলি চিহ্নিত করা হয় যার ভিত্তিতে অভ্যন্তরীণ চরিত্রের একটি জায়গা রয়েছে:

ত্রুটি সংখ্যা

সুতরাং ত্রুটি 1 সহ একটি রুবি দেখতে এইরকম:

  ___
 /\_/\
/_/  _\
\ \_/ /
 \/_\/

11 ত্রুটিযুক্ত একটি রুবি দেখতে এই রকম:

  ___
 /\_/\
/_/ \_\
\ \_/ /
 \ _\/

অন্যান্য সমস্ত ত্রুটির জন্য এটি একই ধারণা।

চ্যালেঞ্জ

এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা কোনও একক, সম্ভাব্য ত্রুটিযুক্ত রুবিয়ের স্ট্রিংয়ে নেয়। ত্রুটি নম্বর মুদ্রিত বা ফিরে করা উচিত। কোনও ত্রুটি না থাকলে ত্রুটি সংখ্যা 0 হয়।

কোনও পাঠ্য ফাইল, স্টিডিন বা স্ট্রিং ফাংশন যুক্তি থেকে ইনপুট নিন। ত্রুটি নম্বরটি ফেরত দিন বা প্রিন্ট করুন stdout এ।

আপনি ধরে নিতে পারেন যে রুবিটির একটি পিছনের নিউলাইন রয়েছে। আপনি ধরে নিতে পারেন না যে এটির কোনও পিছনের স্থান বা শীর্ষস্থানীয় নিউলাইন রয়েছে।

বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী। ( হ্যান্ড বাইট কাউন্টার। )

পরীক্ষার মামলা

13 সঠিক ধরণের রুবি, তাদের প্রত্যাশিত আউটপুট দ্বারা সরাসরি অনুসরণ:

  ___
 /\_/\
/_/ \_\
\ \_/ /
 \/_\/
0
  ___
 /\_/\
/_/  _\
\ \_/ /
 \/_\/
1
  ___
 /\ /\
/_/ \_\
\ \_/ /
 \/_\/
2
  ___
 /\_/\
/_  \_\
\ \_/ /
 \/_\/
3
  ___
 /\_/\
/_/ \_\
\  _/ /
 \/_\/
4
  ___
 /\_/\
/_/ \_\
\ \ / /
 \/_\/
5
  ___
 /\_/\
/_/ \_\
\ \_  /
 \/_\/
6
  ___
 /\_/\
/_/ \ \
\ \_/ /
 \/_\/
7
  ___
 /\_ \
/_/ \_\
\ \_/ /
 \/_\/
8
  ___
 / _/\
/_/ \_\
\ \_/ /
 \/_\/
9
  ___
 /\_/\
/ / \_\
\ \_/ /
 \/_\/
10
  ___
 /\_/\
/_/ \_\
\ \_/ /
 \ _\/
11
  ___
 /\_/\
/_/ \_\
\ \_/ /
 \/_ /
12

স্পষ্ট করে বলতে গেলে, রুবীর কোনও পিছনের স্থান থাকতে পারে না , তাই না?
অপ্টিমাইজার

@ অপ্টিমাইজার সঠিক
ক্যালভিনের

@ Calvin'sHobbies আমরা অনুমান হতে পারে ইনপুট নেই না একটি trailing সম্পর্কে newline আছে?
orlp

হ্যাঁ মে এর পুরো বিষয়টি ।
ক্যালভিনের

রুবিগুলি প্রতিসম হয়। উদাহরণস্বরূপ, ত্রুটি # 7 ত্রুটি # 10 এর মতো হওয়া উচিত নয়?
ডেভিডসি

উত্তর:


13

সিজোম, 27 23 বাইট

F7EC5ZV4DI8G6]qBb67%J%#

বেস 11 রূপান্তর করুন, মড 67 নিন, ফলাফলের 19 টি মডেল নিন এবং আপনার অ্যারেতে কী রয়েছে তার সূচকটি সন্ধান করুন

[15, 7, 14, 12, 5, 3, 0, 4, 13, 18, 8, 16, 6]

ম্যাজিক!

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


34

রুবি 2.0, 69 বাইট

#!ruby -Kn0rdigest
p'×ñF<ìX‚ɲŸ_'.index Digest::MD5.digest(gets)[0]

হেক্সডাম্প (বিশ্বস্তভাবে স্ট্রাইনে বাইনারি ডেটা দেখানোর জন্য):

00000000  23 21 72 75 62 79 20 2d  4b 6e 30 72 64 69 67 65  |#!ruby -Kn0rdige|
00000010  73 74 0a 70 27 d7 f1 46  3c 1f ec 58 82 c9 b2 9f  |st.p'..F<..X....|
00000020  5f 02 27 2e 69 6e 64 65  78 20 44 69 67 65 73 74  |_.'.index Digest|
00000030  3a 3a 4d 44 35 2e 64 69  67 65 73 74 28 67 65 74  |::MD5.digest(get|
00000040  73 29 5b 30 5d                                    |s)[0]|

ব্যাখ্যা:

  1. -Knবিকল্প হিসাবে সোর্স ফাইল সার্চ ASCII-8BIT(বাইনারি)।
  2. -0বিকল্প দেয় getsপুরো ইনপুট (শুধুমাত্র এক লাইন) পড়া।
  3. -rdigestবিকল্প লোড digestমডিউল, যা Digest::MD5
  4. কোডটি পরে ইনপুটটির একটি MD5 করে, ডাইজেস্টের প্রথম বাইট নেয় এবং প্রদত্ত বাইনারি স্ট্রিংয়ে তার সূচক পায়।

ভাগ্যবান যে এমডি 5 প্রথম চরে নিজেই অনন্য
অপটিমাইজার

15
ভাগ্যের দরকার নেই। প্রতিটি বাইটে 256 টি সম্ভাবনা রয়েছে, তাই 13 বয়েসের জন্য প্রথম বাইটটি আলাদা হওয়া অস্বাভাবিক নয়। তবে যদি তারা কোনও কারণে সংঘর্ষে লিপ্ত হয় তবে আমি হ্যাশের দ্বিতীয় বাইটটি ব্যবহার করব।
ক্রিস জেস্টার-ইয়ং

14
রুবিতে একজন রুবি ইন্সপেক্টর লিখুন। স্বাভাবিকভাবে!
মাস্ত্ত

পরবর্তী চ্যালেঞ্জ: এই পোস্টটি নিজেই পরীক্ষা করুন
রেডউল্ফ প্রোগ্রামগুলি 15

7

জুলিয়া, 90 59 বাইট

অবশ্যই সংক্ষিপ্ততম নয়, তবে ন্যায্য মেয়ের জুলিয়া রাজকীয় রুবিগুলির পরিদর্শন করতে খুব যত্ন নিয়েছে।

s->search(s[vec([18 10 16 24 25 26 19 11 9 15 32 34])],' ')

এটি একটি ল্যাম্বদা ফাংশন তৈরি করে যা একটি স্ট্রিং গ্রহণ করে sএবং সংশ্লিষ্ট রুবি ত্রুটি নম্বর প্রদান করে। এটি কল করার জন্য, এটির একটি নাম দিন f=s->...

অবহেলিত + ব্যাখ্যা:

function f(s)
    # Strings can be indexed like arrays, so we can define d to
    # be a vector of indices corresponding to potential defect
    # locations

    d = vec([18 10 16 24 25 26 19 11 9 15 32 34])

    # Check the specified locations for defects, returning the
    # defect number as the index where a space was found and
    # was not expected. If no spaces are found, 0 is returned.

    search(s[d], ' ')
end

উদাহরণ:

julia> f("  ___
 /\\ /\\
/_/ \\_\\
\\ \\_/ \/
 \\/_\\/")
2

julia> f("  ___
 /\\_/\\
/_/ \\_\\
\\ \\_/ \/
 \\/_\\/")
0

নোট করুন যে ইনপুটটিতে ব্যাকস্ল্যাশগুলি এড়িয়ে যেতে হবে। আমি @ ক্যালভিনের শখগুলির সাথে নিশ্চিত হয়েছি যে এটি ঠিক আছে।

আপনার যদি কোন প্রশ্ন বা পরামর্শ থাকে তবে আমাকে জানান!


সম্পাদনা করুন: অ্যান্ড্রু পিলিসারের সহায়তায় 31 বাইট সংরক্ষণ করা হয়েছে!


আপনি লুপ searchএবং অ্যারে ইনডেক্সিংয়ের জন্য লুপ থেকে মুক্তি পেতে পারেন । s->(d=reshape([18 10 16 24 25 26 19 11 9 15 32 34],12);search(s[d],' '))। আমি পুনরায় আকারটি পছন্দ করি না, তবে আমি 1 ডি অ্যারে পাওয়ার জন্য আরও ছোট পদ্ধতির কথা ভাবতে পারি না।
অ্যান্ড্রু 22

@ অ্যান্ড্রুপিলাইজার: ধন্যবাদ, আমি আপনার ইনপুটটির সত্যই প্রশংসা করি! আপনার পরামর্শটি ব্যবহার করার জন্য আমি সম্পাদনা করেছি। এছাড়াও, reshape()ব্যবহারের চেয়ে ছোট একটি উপায় vec()। :)
অ্যালেক্স এ।

7

> <> (ফিশ) , 177 বাইট

এটি একটি দীর্ঘ তবে অনন্য সমাধান। কোডটিতে নির্দিষ্ট স্থানে ইনপুট অক্ষর tingোকানো ব্যতীত প্রোগ্রামটিতে কোনও গাণিতিক বা শাখা প্রশাখা নেই

লক্ষ্য করুন যে সমস্ত পরিদর্শন করা রুবি-বিল্ডিং অক্ষর ( / \ _) নির্দেশের পয়েন্টার (আইপি) এর দিক পরিবর্তন করে>> <> কোডে "মিরর" হতে পারে।

আমরা এই ইনপুট অক্ষরগুলি তাদের কাছ থেকে কোড-সংশোধন নির্দেশাবলী pএবং একটি প্রস্থান করার সময় (যা ইনপুটটিতে একটি অনুপস্থিত আয়না দ্বারা তৈরি করা হয়েছে) সম্পর্কিত নম্বর মুদ্রণ করতে তাদের সাথে একটি ধাঁধা তৈরি করতে ব্যবহার করতে পারি।

iiiiiiiii19pi1cpi18piiii2bpi27pii28pi3apiiiii37pi49pi36piiiii00pi45pii46p

    ;
   ;n
  ;nb
 ;n6S    0n;
 n3SB   cn;
 8SB!  4n;
 SB!  1n;
>B! U9n;
 ! U5
  U7n
 Uan;
 2n;
 n;
 ;

S B Uঅক্ষর পরিবর্তিত বেশী / \ _যথাক্রমে। যদি ইনপুটটি পূর্ণ রুবি হয় তবে চূড়ান্ত কোড হয়ে যায়:

\iiiiiiii19pi1cpi18piiii2bpi27pii28pi3apiiiii37pi49pi36piiiii00pi45pii46p

    ;
   ;n
  ;nb
 ;n6/    0n;
 n3/\   cn;
 8/\!  4n;
 /\!  1n;
>\! _9n;
 ! _5
  _7n
 _an;
 2n;
 n;
 ;

আপনি এই দুর্দান্ত অনলাইন ভিজ্যুয়াল দোভাষী সাথে প্রোগ্রামটি ব্যবহার করে দেখতে পারেন । আপনি সেখানে নিউলাইনগুলি ইনপুট করতে না পারার পরিবর্তে আপনাকে কিছু ডামি অক্ষর ব্যবহার করতে হবে যাতে আপনি উদাহরণস্বরূপ একটি সম্পূর্ণ রুবিকে ইনপুট করতে পারেন SS___LS/\_/\L/_/S\_\L\S\_/S/LS\/_\/। (মার্কডাউন করার কারণে স্পেসগুলি এস এর পরিবর্তিত হয়েছে))


5

সিজেম, 41 31 29 28 বাইট

"-RI)11a!"q103b1e3%A/c#

যথারীতি মুদ্রণযোগ্য অক্ষরের জন্য, এই লিঙ্কটি অনুসরণ করুন

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

শীঘ্রই ব্যাখ্যা


পূর্ববর্তী পদ্ধতি:

খুব নিশ্চিত যে অঙ্কগুলি / রূপান্তর যুক্তি পরিবর্তন করে এটি হ্রাস করা যায়। তবে এখানে প্রথম প্রচেষ্টা রয়েছে:

"<KJ[]\"O=":iqN-"/\\_ "4,er4b1e3%A/#

যথারীতি, অপ্রিন্টযোগ্য অক্ষরের জন্য এই লিঙ্কটি ব্যবহার করুন।

যুক্তি বেশ সহজ

  • "Hash for each defect":i - এটি আমাকে সূচক হিসাবে ত্রুটি অনুযায়ী হ্যাশ পেয়েছে
  • qN-"/\\_ "4,er - এটি অক্ষরগুলিকে সংখ্যায় রূপান্তর করে
  • 4b1e3%A/ - এটি বেস রূপান্তরিত সংখ্যার অনন্য নম্বর
  • # তারপরে আমি হ্যাশটিতে অনন্য সংখ্যার সূচকটি সহজেই পাই

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


এত কাছে, আমি আপনার চেয়ে 1 অক্ষর খাটো!
orp

ওহ, আমার ইতিমধ্যে 28 আছে update আপডেট করতে খুব ব্যস্ত ছিলাম
অপ্টিমাইজার 10

আমি মনে করি আমার উত্তর পাইথের জন্য সর্বোত্তম। পাইথের সত্যিকার অর্থে একটি হ্যাশ ফাংশন প্রয়োজন ( .hএখনই অকেজো কারণ এটি অন্তর্নির্মিত অবিশ্বস্ত এবং খারাপ ব্যবহার করে hash()), ততক্ষণ আমি আরও ভাল করতে পারি না।
orp

4

স্লিপ , 123 108 + 3 = 111 বাইট

^6 (`\\`_.?<?.?[ _]?|`_(`\.?(<.?|>)|`/.?.?>.?.?).?)| `_(`\.?<.?>?.?.?|`/(.?>.?.?.?|<`_))| `/\`_.?(.<.?>?.?)?

পতাকা nএবং oপতাকা দিয়ে চালান , অর্থাত্‍

py -3 slip.py regex.txt input.txt no

বিকল্পভাবে, এটি অনলাইনে চেষ্টা করুন


স্লিপ একটি রেজেক্স-এর মতো ভাষা যা 2 ডি প্যাটার্ন ম্যাচিং চ্যালেঞ্জের অংশ হিসাবে তৈরি হয়েছিল । স্লিপ pনিম্নলিখিত প্রোগ্রামের মাধ্যমে অবস্থানের পতাকা সহ একটি ত্রুটির অবস্থান সনাক্ত করতে পারে :

^6? `_[/\]|( `/|^6 `\)\`_

যা নীচের একটি নিদর্শনগুলির সন্ধান করে (এখানে Sম্যাচটি শুরু হচ্ছে এখানে বোঝায়):

S_/    S_\    /_S    \_S    S/      _
                              _      \S

অনলাইনে এটি ব্যবহার করে দেখুন - স্থানাঙ্কগুলি একটি (x, y) জোড়া হিসাবে আউটপুট করা হয়। সবকিছু বাদ দিয়ে একটি সাধারণ রেজেক্সের মতো পড়ে:

  • ` পালানোর জন্য ব্যবহৃত হয়,
  • <> ম্যাচের পয়েন্টারটি যথাক্রমে বাম / ডানদিকে ঘুরুন
  • ^6 বাম দিকে মুখোমুখি ম্যাচ পয়েন্টার সেট করে, এবং
  • \ ম্যাচ পয়েন্টারটি orthogonally ডানদিকে পিছলে যায় (যেমন পয়েন্টারের মুখটি ডানদিকে থাকে তবে এটি একটি সারিতে নেমে যায়)

কিন্তু দুর্ভাগ্যবশত, আমরা কি প্রয়োজন থেকে 0 থেকে 12 উক্তি একটি একক সংখ্যা যা খুঁত সনাক্ত করা হয়েছিল, না যেখানে এটা শনাক্ত হয়েছে। স্লিপটিতে কেবল একটি একক সংখ্যা আউটপুট দেওয়ার একটি পদ্ধতি রয়েছে - nপতাকাটি যা পাওয়া মিলগুলির সংখ্যা আউটপুট করে।

সুতরাং এটি করার জন্য আমরা oওভারল্যাপিং ম্যাচ মোডের সাহায্যে প্রতিটি ত্রুটির জন্য সঠিক সংখ্যার সাথে মেলে উপরের রেজেক্সটি প্রসারিত করি । ভাঙা, উপাদানগুলি হল:

1 11:    `_`\.?<.?>?.?.?
2 10:    `/\`_.?(.<.?>?.?)?
4 9:     `_`/(.?>.?.?.?|<`_)
3 12:   ^6 `_`/.?.?>.?.?.?
5 7:    ^6 `\\`_.?<?.?[ _]?
6 8:    ^6 `_`\.?(<.?|>).?

হ্যাঁ, ?সংখ্যাটি সঠিকভাবে পাওয়ার জন্য এটি একটি বাহুল্য ব্যবহার : পি


হাহা, আশ্চর্য। আমার ভাষায় আমাকে আরও ধরণের আউটপুট যুক্ত করতে হবে।
BMac

4

জাভাস্ক্রিপ্ট (ES6), 67 72

কেবলমাত্র 12 টি স্থানে ফাঁকা অনুসন্ধান করুন

সম্পাদনা সংরক্ষিত 5 বাইট, ধন্যবা @apsillers

F=b=>[..."0h9fnopia8evx"].map((v,i)=>b[parseInt(v,34)]>' '?0:d=i)|d

টেস্ট সালে ফায়ারফক্স / ফায়ারবাগ কনসোলটি

x='  ___\n /\\_/\\\n/_/ \\_\\\n\\ \\_/ /\n \\/_\\/' // no defects
;[...x].forEach((c,p,a)=>{
  a[p]=' ' // put a blank
  y=a.join('') // rebuild a string
  d=F(y) // check
  if (d) console.log('\n'+y+'\n'+d) // if defect, output
  a[p]=c // remove the blamk
})

আউটপুট

  ___
 / _/\
/_/ \_\
\ \_/ /
 \/_\/
9

  ___
 /\ /\
/_/ \_\
\ \_/ /
 \/_\/
2

  ___
 /\_ \
/_/ \_\
\ \_/ /
 \/_\/
8

  ___
 /\_/\
/ / \_\
\ \_/ /
 \/_\/
10

  ___
 /\_/\
/_  \_\
\ \_/ /
 \/_\/
3

  ___
 /\_/\
/_/  _\
\ \_/ /
 \/_\/
1

  ___
 /\_/\
/_/ \ \
\ \_/ /
 \/_\/
7

  ___
 /\_/\
/_/ \_\
\  _/ /
 \/_\/
4

  ___
 /\_/\
/_/ \_\
\ \ / /
 \/_\/
5

  ___
 /\_/\
/_/ \_\
\ \_  /
 \/_\/
6

  ___
 /\_/\
/_/ \_\
\ \_/ /
 \ _\/
11

  ___
 /\_/\
/_/ \_\
\ \_/ /
 \/_ /
12

@ অ্যাপসিলাররা এটি ভাল এবং আরও ভাল, ধন্যবাদ। ইনপুট স্ট্রিংটি সর্বদা '' দিয়ে শুরু হওয়ার সাথে সাথে নেতৃস্থানীয় 0 প্রথম লুপে d থেকে i শুরু করার জন্য জোর করে, তাই 'd = 0' মুছে ফেলা যায়।
edc65

2

সি, 98 84 বাইট

g(char*b){char*c="/'-5670(&,=?",*a=c;for(;*c&&!(*b=b[*c++-30]-32?0:c-a););return*b;}

আপডেট: স্ট্রিং সম্পর্কে একটি শিশুর বিট আরও চালাক, এবং অ-ত্রুটিযুক্ত রুবি সঙ্গে একটি সমস্যা স্থির।

উন্মোচন:

g(char*b){
    char*c="/'-5670(&,=?",*a=c;
    for(;*c&&!(*b=b[*c++-30]-32?0:c-a);)
        ;
    return*b;
}

বেশ সোজা, এবং মাত্র 100 বাইটের নিচে।

পরীক্ষার জন্য:

#include "stdio.h"
int main() {
    char b[100];
    scanf("%35c", b);
    printf("%d\n", g(b));
    return 0;
}

এসটিডিআইএন ইনপুট।

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

রুবীর প্রতিটি ত্রুটি ভিন্ন চরিত্রে অবস্থিত। এই তালিকাটি দেখায় যেখানে ইনপুট স্ট্রিংয়ে প্রতিটি ত্রুটি ঘটে:

Defect 1: 17
Defect 2: 9
Defect 3: 15
Defect 4: 23
Defect 5: 24
Defect 6: 25
Defect 7: 18
Defect 8: 10
Defect 9: 8
Defect 10: 14
Defect 11: 31
Defect 12: 33

যেহেতু {17,9,15,23,24,25,18,10,8,14,31,33}অনেকগুলি বাইটের অ্যারে তৈরি করা হয় তাই আমরা এই তালিকাটি তৈরি করার একটি ছোট্ট উপায় খুঁজে পাই। লক্ষ করুন যে প্রতিটি সংখ্যার 30 টি সংখ্যার ফলাফলের যোগফলের তালিকায় ফলাফল প্রিন্টযোগ্য ASCII অক্ষর হিসাবে উপস্থাপিত হতে পারে results এই তালিকাটি নিম্নরূপ: "/'-5670(&,=?"। সুতরাং, আমরা cএই স্ট্রিংয়ের জন্য একটি অক্ষরের অ্যারে (কোডে ) সেট করতে পারি এবং আমাদের প্রাথমিক সংখ্যার অ্যারে পেতে এই তালিকা থেকে আমরা প্রাপ্ত প্রতিটি মান থেকে কেবল 30 টি বিয়োগ করতে পারি। আমরা তালিকাটি কতটা এগিয়ে পেয়েছি তা পর্যবেক্ষণ aকরার cজন্য সমান হতে সংজ্ঞায়িত করেছি। কোডে কেবলমাত্র জিনিসটি forলুপ হয়। এটি নিশ্চিত করা যায় যে আমরা cএখনও শেষের দিকে আঘাত করে নি, এবং তারপরে বর্তমানের চরিত্রটি কোনও স্থান (ASCII 32) রয়েছে কিনা তা পরীক্ষা bকরে cদেখায়। যদি তা হয় তবে আমরা এর প্রথম, অব্যবহৃত উপাদানটি সেট করিb ত্রুটি নম্বর এবং এটি ফিরে।


2

পাইথন 2, 146 88 86 71 বাইট

ফাংশন fপ্রতিটি বিভাগের অবস্থান পরীক্ষা করে এবং ত্রুটিযুক্ত বিভাগের সূচকটি প্রদান করে। ইনপুট স্ট্রিংয়ে প্রথম বাইটে একটি পরীক্ষা নিশ্চিত করে যে 0কোনও ত্রুটি না পাওয়া গেলে আমরা ফিরে আসি।

আমরা এখন বিভাগটি অফসেটগুলিকে একটি কমপ্যাক্ট স্ট্রিংয়ে প্যাক করেছি এবং ord()সেগুলি পুনরুদ্ধার করতে ব্যবহার করি:

f=lambda s:sum(n*(s[ord('ARJPXYZSKIO`b'[n])-65]<'!')for n in range(13))

নিখুঁত রুবি দিয়ে পরীক্ষা করা:

f('  ___\n /\\_/\\\n/_/ \\_\\\n\\ \\_/ /\n \\/_\\/')
0

স্থান দ্বারা প্রতিস্থাপন 2 বিভাগের সাথে পরীক্ষা করা:

f('  ___\n /\\ /\\\n/_/ \\_\\\n\\ \\_/ /\n \\/_\\/')
2

সম্পাদনা: সুন্দর কৌশলটির জন্য @ এক্সনরকে ধন্যবাদ sum(n*bool for n in...)

সম্পাদনা 2: অতিরিক্ত গল্ফিং টিপসের জন্য @ এসপি 3000 ধন্যবাদ


2
আমি মনে করি আপনি একটি সূচক-যোগ ব্যবহার করে অক্ষর সংরক্ষণ করতে পারেন sum(n*(s[...]==' ')for ...)
xnor

1
প্রতিস্থাপিত অক্ষরগুলি সমস্ত জায়গার পরে রয়েছে তা বিবেচনা করে আপনি বাইটের <'!'পরিবর্তে সম্ভবত কিছু করতে পারেন ==' '। আপনি এই তালিকাটিও তৈরি করতে পারেন map(ord, ...)তবে আমি নিশ্চিত নই যে আপনি
ছাপ ছাপানো

1

পাইথ, 35 31 28 বাইট

hx"*6#,54@"C%imCds.zT67

একটি প্যাচযুক্ত পাইথের প্রয়োজন , পাইথের বর্তমান সর্বশেষতম সংস্করণটিতে একটি বাগ রয়েছে .zযা অক্ষরের অক্ষরগুলি ছাড়িয়ে যায় ।

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

উত্তরে অপ্রিন্টযোগ্য অক্ষর রয়েছে, আপনার মেশিনে সঠিকভাবে প্রোগ্রামটি তৈরি করতে এই পাইথন 3 কোডটি ব্যবহার করুন:

garbage = [42, 22, 54, 35, 44, 28, 31, 53, 52, 64, 16, 11]
prg = 'hx"' + "".join(chr(c) for c in garbage) +'"C%imCds.zT67'
open("golf_gen.pyth", "w").write(prg)
print(len(prg))

1

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

f l=last[x|x<-[0..12],l!!([0,17,9,15,23,24,25,18,10,8,14,31,33]!!x)==' ']

অন্যান্য কৌশলগুলির মতো একই কৌশল: প্রদত্ত অবস্থানগুলিতে ফাঁকা স্থান অনুসন্ধান করা। অনুসন্ধানটি সূচকগুলির একটি তালিকা ফিরিয়ে দেয় যা থেকে আমি শেষ উপাদানটি গ্রহণ করি, কারণ সর্বদা 0 সূচকের জন্য হিট থাকে।


0

05 এ বি 1 ই , 16 বাইট

•W)Ì3ô;4(•₆вèðk>

এটি অনলাইনে চেষ্টা করুন বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা:

W3ô;4(•        # Push compressed integer 2272064612422082397
          ₆в      # Converted to Base-36 as list: [17,9,15,23,24,25,18,10,8,14,31,33]
            è     # Index each into the (implicit) input-string
             ðk   # Get the 0-based index of the first space in the indexed characters
                  # (-1 if not found, which means the ruby had no defects)
               >  # And increase it by 1 (which is output implicitly as result)

(বিভাগে আমার এই 05AB1E ডগা দেখুন ইপিএসে দক্ষিন কোরিয়ায় কিভাবে পূর্ণসংখ্যার কম্প্রেস কিভাবে? এবং কিভাবে কম্প্রেস পূর্ণসংখ্যা তালিকা কিভাবে? ) কেন বুঝতে •W)Ì3ô;4(•হয় 2272064612422082397এবং •W)Ì3ô;4(•₆вহয় [17,9,15,23,24,25,18,10,8,14,31,33]

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