দুটি রাস্তা হলুদ কাঠে বিভক্ত (অংশ 1)


14

এটি একটি সিরিজের প্রথম, দ্বিতীয়টি হলুদ কাঠে দুটি রাস্তা বিভক্ত (অংশ 2)

এই চ্যালেঞ্জটি রবার্ট ফ্রস্টের বিখ্যাত কবিতা "দ্য রোড নট টেকন" দ্বারা অনুপ্রাণিত:

দুটি রাস্তা হলুদ কাঠে বিভক্ত হয়ে গেছে,
এবং দুঃখিত আমি দুজনেই ভ্রমণ করতে পারিনি
এবং একজন পথিক হতে পারলাম, আমি দাঁড়িয়ে দাঁড়িয়ে
একদিকে তাকালাম যতদূর
পেরোনোর ​​দিকে বাঁক হয়েছিল;

তারপরে অন্যটিকেও ঠিক মতো নিখুঁতভাবে গ্রহণ করল,
এবং সম্ভবত আরও ভাল দাবিটি ছিল,
কারণ এটি ঘাসযুক্ত এবং পরিধানের চেয়েছিল;
যদিও সেখানে যাওয়ার
সময়গুলি তাদের সম্পর্কে সত্যই জীর্ণ হয়েছিল,

এবং সেই সকালে উভয়ই সমানভাবে
পাতায় কোনও ধাপই কালো রঙিন ছিল না।
ওহ, আমি প্রথম দিনের জন্য রেখেছিলাম!
তবুও কীভাবে পথটি বাড়ে তা জেনে
আমি সন্দেহ করেছিলাম যে আমার আবার ফিরে আসা উচিত কিনা।

আমি
যেহেতু যুগে যুগে যুগে যুগে যুগে যুগে দীর্ঘশ্বাস ফেলে বলছি :
দু'টি রাস্তায় একটি কাঠের দিকে সরিয়ে দেওয়া হয়েছিল, এবং আমি -
আমি যাতায়াতকৃত একটিকে কম করে দিয়েছি,
এবং এটি সমস্ত পার্থক্য তৈরি করেছে।

দ্বিতীয় থেকে শেষ লাইনে লক্ষ্য করুন I took the one less traveled by,,।

আপনার আসল চ্যালেঞ্জ

আপনি ফর্মটি ইনপুট নিতে হবে যেমন:

#     ##
 #   ##
  # ##
   #
   #
   #

এবং আপনি পাতলা রাস্তা খুঁজে পেতে হবে।

রাস্তাটি নীচে থেকে শুরু হয় একটি দিয়ে #। অন্যান্য 2 টি রাস্তা, যা সর্বদা উপরের সারিতে শেষ হয়, সেই রাস্তাগুলি যা আপনাকে পরীক্ষা করতে হবে। সবচেয়ে ঘনতম রাস্তাটি সবচেয়ে বেশি ভ্রমণ করেছে এবং তাই আপনি যা চান তা তা নয়। অন্যটি হ'ল কমপক্ষে ভ্রমণ করা, এবং এটিই আপনি চান।

আউটপুট

আপনার প্রোগ্রাম / ফাংশনটি অবশ্যই 2 টি পৃথক মানের (যেমন 0 বা 1, সত্য বা মিথ্যা) এর একটি আউটপুট অবশ্যই অবশ্যই গ্রহণ করবে না রাস্তার প্রতিটি সম্ভাব্য অবস্থানের জন্য। উদাহরণস্বরূপ, গৃহীত রাস্তাটি নেওয়া রাস্তার বাম দিকে থাকলে আপনি 0 আউটপুট করতে পারতেন এবং অন্যথায় 1, বা আপনি "বাম" বা "ডান", সত্য, মিথ্যা ইত্যাদি স্ট্রিং আউটপুট করতে পারেন could

পরীক্ষার কেস:

 ##    #
  ##  #
   ###
    #
    #
    #

আউটপুট "ডান" হতে পারে।

 ##  #   
  ## #  
   ###
    ##
     #
     #
     #

আউটপুট "ডান" হতে পারে।

 ##  #   
  ## #  
   ###
    ##
   # 
  #  
 #   

আউটপুট "ডান" হতে পারে।

 ##   #  
  ## #  
   ###
    #
   # 
  #  
  #  

আউটপুট "ডান" হতে পারে।

 #    ## 
  #  ## 
   ###
    #
   # 
  #  
  #  

আউটপুট "বাম"

 #    ## 
  #  ## 
   ###
    #
     #
     #
     #

আউটপুট "বাম"

মন্তব্য

  • এটি , তাই বাইটের মধ্যে সংক্ষিপ্ত উত্তর ins
  • স্ট্যান্ডার্ড লুফোলস নিষিদ্ধ
  • আপনাকে অবশ্যই "বাম" এবং "ডান" এর জন্য আপনার আউটপুটগুলি নির্দিষ্ট করতে হবে এবং সেগুলি অবশ্যই আলাদা
  • ইনপুটটি একটি বড় স্ট্রিং হবে এবং এতে কোনও পরিমাণ লাইন থাকতে পারে
  • বৈধ ইনপুট সম্পর্কে আপনাকে চিন্তা করার দরকার নেই।
  • রাস্তাটি সর্বদা একটি Y আকারের হয়, তাই আপনাকে কেবল শীর্ষে দেখতে হবে।
  • কোনো প্রশ্ন আছে কি? নিচে মন্তব্য করুন:

সর্বনিম্ন বাইট গণনা জয়!


1
হ্যাঁ, সর্বদা # এবং ## এবং অনুভূমিক ক্রসশেকশন।
programmer5000

1
আমি ছিল না। আমি এটা বেশ পছন্দ করেছি. ভাল সংজ্ঞায়িত, ভাল ফিরে গল্প এবং স্পষ্ট উদাহরণ। এটি মোটামুটি সহজেই করণীয় এবং আমি মনে করি যে অস্পষ্ট ভাষাগুলি আমন্ত্রণ করার ধারণাটি কেবল অতিরিক্ত স্বাদ যুক্ত করে এবং কিছু আকর্ষণীয় উত্তর উত্সাহিত করতে পারে।
এলপেড্রো

1
আইবিএম / লোটাস নোটস সূত্রের ভাষা এবং এসসি !! প্রতিক্রিয়াগুলি কীভাবে সহজ প্রশ্নগুলিতে অস্পষ্ট ভাষাগুলিকে আমন্ত্রণ জানাতে আকর্ষণীয় ফলাফলের দিকে নিয়ে যায় তার প্রমাণ।
programmer5000

3
আমি কেবল নিজের সাথে বলছিলাম: "আপনি জানেন যে একটি চ্যালেঞ্জ সহজ, যখন আপনি মনে করেন, 'আরে,
এ্যাক এ

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

উত্তর:


16

সিজেম , 1 বাইট

r

rরাখে স্ট্যাক stdin থেকে সন্নিহিত অ হোয়াইটস্পেস অক্ষর প্রথম স্ট্রিং, তাই এই কপি করে প্রিন্ট ##এর জন্য বাম এবং #জন্য ডান

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


4
এটি পোকেমন গো-এর উত্স কোডের মতো দেখাচ্ছে।
টেলর লোপেজ

18

জাভাস্ক্রিপ্ট (ES6), 19 12 বাইট

সম্পাদনা:

আরও একটি গল্ফ সংস্করণ হয়

a=>a.trim[1]

#ডান এবং বাম জন্য একটি স্থান ফেরত ।

মূল:

a=>a.trim()[1]=='#'

ব্যাখ্যা

Ungolfed :

function(input) {
  return input.trim().charAt(1) === '#';
};

এই ফাংশনটি প্রথম কাজটি হ'ল ইনপুটটির শুরু এবং শেষে সাদা স্থান সরিয়ে ফেলা। এর অর্থ প্রথম চরিত্রটি সর্বদা #। তারপরে সেখান থেকে আমি দ্বিতীয় চরিত্রটি পরীক্ষা করি (জাভাস্ক্রিপ্ট 0 থেকে শুরু হয়) এবং দেখুন এটি কোনও #অক্ষর কিনা । এটি একটি বুলিয়ান ফেরত দেয়। যদি পথ হয়right তা হবে true, যদি ছেড়ে যায় তবে ফিরে আসবে false

আমি কিভাবে এটি গল্ফ

ES6 এ একটি বেনাম ফাংশন শর্টহ্যান্ড রয়েছে যার নাম একটি তীর ফাংশন । এর অর্থ হল যে আমি আমার মোড়ক ফাংশনটি নিতে এবং এটিকে রূপান্তর করতে পারি:

input => ...;

তীর ফাংশনগুলির নিয়মের কারণে এটি বাকী কোডটি ফিরিয়ে দেবে। সেখানে থেকে আমি রূপান্তরিত charAt(1)করতে [1]যেমন একটি সংক্ষিপ্ত পথ, যদিও সুপারিশ করা । তারপর আমি গ্রহণ ===এবং এটি পরিণত ==। যদিও তারা এই ক্ষেত্রে আলাদা । অবশেষে, আমি নাম পরিবর্তন inputকরে aসমস্ত সাদা স্থান সরিয়ে ফেললাম ।

ডান এবং বাম আউটপুট

ধাঁধাটির ডান এবং বাম আউটপুট দেওয়ার জন্য প্রোগ্রামটির আসলে প্রয়োজন নেই, এখানে অন্যান্য আউটপুটগুলির উদাহরণ এখানে রয়েছে:

a=>a.trim()[1]=='#'?'right':'left'

শুধুমাত্র যুক্ত অংশ ?'right':'left'। এটি একটি টার্নারি অপারেটর তৈরি করে , যদি বিবৃতি দেওয়া হয় তবে এটির অর্থ হল (অবরুদ্ধ) কোডটি *: এর সমান

function(input) {
  let output = input.trim().charAt(1) === '#';
  if(output) {
    return 'right';
  } else {
    return 'left'
  }
};

উদাহরণ

// Function assignment not counted in byte count
let f =
a=>a.trim()[1]=='#'
<textarea placeholder="Put path in here" id="path" rows="10" style="width:100%"></textarea>
<button onclick="document.getElementById('result').textContent = f(document.getElementById('path').value)">Submit</button>
<p id="result"></p>


3
সাইটে স্বাগতম! সুন্দর ব্যাখ্যা এবং স্নিপেট, এটি একটি সম্পূর্ণ পুরো উত্তর। :)
জেমস

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

1
বাহ, পুরোপুরি ছাড়িয়ে গেছে!
programmer5000

1
এটি একটি দুর্দান্ত পন্থা। সেটার কথা ভাবিনি।
এলপেড্রো

1
@ প্রোগ্রামার 5000 এর প্রতিক্রিয়া হিসাবে আমি এটিকে সম্পাদনা করব। এটি একটি দুর্দান্ত ধারণা, ধন্যবাদ।
ডেভিড আর্চিবাল্ড


10

Acc !!, 30 বাইট

কারণ এসি !! ইনপুট নেয়, এটি কেবল একটি লাইন ইনপুট প্রবেশের পরে আউটপুট দেয়। তবে আপনি যদি ইনপুটটি পাইপ করেন বা কোনও ফাইল থেকে পুনর্নির্দেশ করেন তবে আপনার পার্থক্যটি লক্ষ্য করা উচিত নয়।

Count i while 35-N {
}
Write N

স্টিডিন থেকে ইনপুট নেয়। যদি বাম-হাতের রাস্তাটি কম ভ্রমণ করা হয় বা #ডান-হাতের রাস্তাটি কম ভ্রমণ হয় তবে আউটপুটগুলি । এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

Nস্ট্যান্ডিনের যতবার কোনও চরিত্রের রেফারেন্স করা হয় ততই ASCII মান পড়ে। 35-Nসত্যবাদী আমরা লুপ করি; যে, যখন 35-N != 0বা N != 35। সুতরাং, যখন লুপটি প্রস্থান করে, আমরা কেবল #লাইনের প্রথম অক্ষরটি পড়েছি । এরপরের অক্ষরটি পরে পাঠ করা হয় Nএবং স্ট্যাডআউট দিয়ে ফিরে লেখা হয় Write


কি দারুন! তবুও অন্য একটি অস্পষ্ট ভাষা ...
প্রোগ্রামার

7
@ programmer5000 আপনি যদি অস্পষ্ট প্রোগ্রামিং ভাষা চান তবে আপনি সঠিক সাইটে এসেছেন। ;)
DLosc

আমি কোথায় চালাতে পারি !! একটি গিটহাব লিঙ্ক আছে, টিও, বা অন্য?
প্রোগ্রামার

@ প্রোগ্রামার ৫০০ পাইথন 3 উত্স কোডটি আমি যে শিরোনামটিতে লিঙ্ক করেছি সেই পোস্টে রয়েছে তবে আমি আপনার জন্য একটি টিআইও লিঙ্কটি একসাথে কোবল করতে পারি কিনা তা আমি দেখতে পাচ্ছি।
DLosc

@ programmer5000 উত্তরের সাথে টিআইও লিঙ্ক যুক্ত হয়েছে।
DLosc

8

রেটিনা, 5 বাইট

1যদি ডান হয় তবে আউটপুট 0

^ *##

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


যদি ইতিবাচক ফলাফলের জন্য মানগুলি পৃথক (5 বাইট) না করতে হয়:

ডান হলে একটি ধনাত্মক পূর্ণসংখ্যা আউটপুট দেয়, বামে শূন্য হয়।

## +#

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


1
কি দারুন! এটা কিভাবে কাজ করে? আপনার উত্তর সম্পাদনা যত্ন বোঝাতে?
programmer5000

1
@ প্রোগ্রামার ৫০০০ এটি কেবল কোনও ম্যাচের জন্য নিয়মিত অভিব্যক্তির বিপরীতে ইনপুট পরীক্ষা করে।
mbomb007

6

আইবিএম / লোটাস নোটগুলির সূত্রের ভাষা, 37 35 26 বাইট

সম্পাদনা করুন আমি সবসময় ভুলে যাবেন না যে @Likeওয়াইল্ডকার্ড সহ 2 বাইট তুলনায় সস্তা @Contains

সম্পাদনা 2 বাস্তবিক দরকার নেই @ifযেমন ঠিক কপি করে প্রিন্ট 1বা 0উপর কিনা সূত্র ফলাফলে নির্ভর করে @Trueবা @False

@Like(@Left(a;"##");"%#%")

গণিত ক্ষেত্রের সূত্র। ##ক্ষেত্রের সন্ধানে প্রথমে বামে সবকিছু নিয়ে যান aএবং যদি এর #মধ্যে 1কোনও বামের আউটপুট থাকে অন্যথায় 0ডানের জন্য আউটপুট ।

enter image description here

enter image description here

@ ডেভিড আর্চিবাল্ডকে ধন্যবাদ সহ, এখানে 22 বাইটের জন্য একটি সমাধান দেওয়া হয়েছে। ডেভিড সমাধানের প্রতি শ্রদ্ধার বাইরে আমি এটিকে আমার প্রধান উত্তর হিসাবে পোস্ট করব না।

@Left(@Trim(a);2)="##"

এটি 1ডান এবং 0বাম জন্য আউটপুট ।


কি দারুন! বেশ অস্পষ্ট ভাষা! আরও ভাল উত্তর শীঘ্রই না এলে তা গ্রহণযোগ্য হতে পারে ...
প্রোগ্রামার

1
আমি যখন তরুণ (এর) প্রোগ্রামার ছিলাম তখন ভাল পুরানো দিনগুলিতে এতটা অস্পষ্ট হয়ে
থাকত না

4

পিপ , 8 6 বাইট

a~`#+`

কমান্ড-লাইন আর্গুমেন্ট হিসাবে ইনপুট নেয় (যা প্রকৃত কমান্ড লাইন থেকে চালিত হওয়ার সময় নতুন লাইনের উদ্ধৃতি এবং পলায়নের প্রয়োজন হবে)। #যদি বাম-হাতের রাস্তাটি কম ভ্রমণ হয় এবং ##ডান-হাতের রাস্তাটি কম ভ্রমণ হয় তবে আউটপুটগুলি । এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

এটি পিপের সাম্প্রতিক যোগ হওয়া রেজেেক্স প্রথম ম্যাচের অপারেটরটি ব্যবহার করে।

a         First cmdline arg
 ~        Regex match the first instance of...
  `#+`    ...one or more #s (i.e. a cross-section of the left-hand road)
          Print (implicit)

সোজা রেইগেক্স সলিউশন ( এমবিম্ব 1007 এর রেটিনা উত্তরের একটি বন্দর ) 9 বাইট:

`^ +##`Na

আপনি কি বাইট গণনায় কমান্ড-লাইন যুক্তি গণনা করেছেন?
প্রোগ্রামার

@ programmer5000 কমান্ড-লাইন আর্গুমেন্টের মাধ্যমে ইনপুট নেওয়া হ'ল একটি ইনপুট পদ্ধতি যা ডিফল্টরূপে অনুমোদিত হয় (এবং এটি পাইপ ইনপুট হওয়ার স্বাভাবিক উপায়)। বাইট জরিমানা অ-মানক কমান্ড-লাইন পতাকাগুলির জন্য প্রযোজ্য , যা আমি এই জমাটিতে ব্যবহার করছি না। এটি বলেছে যে, এই বিশেষ ক্ষেত্রে, কেউ এটিকে পরিবর্তিত করতে পারে এবং পরিবর্তে স্টিডিনের কাছ থেকে ইনপুট আনতে aপারে q
DLosc

উহু. বুঝলাম না।
programmer5000

4

চিপ , 7 বাইট

AZ~S
at

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

0x0বাম জন্য এবং 0x1ডান জন্য আউটপুট । (টিআইওতে পতাকা অন্তর্ভুক্ত রয়েছে -vযাতে আপনি স্ট্ডারারে বাইনারি মানগুলি দেখতে পারেন AS ASCII এ আউটপুট দেখতে,e*f প্রথম লাইনের শেষে যুক্ত করা যেতে পারে))

চিপ একটি বাইট স্ট্রিমের মধ্যে পৃথক বিটগুলিতে পরিচালনা করে, যা এটি নির্দিষ্ট সমস্যাটিতে এটি বেশ ভাল করে তোলে।

Aইনপুট বাইটের সর্বনিম্ন উল্লেখযোগ্য বিট এবং '#' হ'ল ইনপুটটির একমাত্র অক্ষর যার জন্য এই বিটটি সেট করা আছে। যখন এই বিটটি প্রথম সম্মুখীন হয়, আমরা প্রথম লাইনের প্রথম '#' এ পৌঁছেছি।

Z একটি চক্রের জন্য সেই সংকেতটি বিলম্ব করে, যাতে আমরা এখন পরবর্তী চরিত্রটির দিকে তাকিয়ে থাকি।

tএখন সক্রিয় করা হয়েছে, যার অর্থ এই চক্রটি শেষ হওয়ার পরে কার্যকর করা বন্ধ করা। প্রথম রাস্তার প্রস্থের চেয়ে আমাদের আর দেখার দরকার নেই।

~Sচূড়ান্ত ব্যতীত সমস্ত চক্রের আউটপুট দমন করে। এটি এখানে না থাকলে আমরা প্রতিটি চক্রের একটি আউটপুট পাই get

aতার প্রতিবেশীদের বর্তমান মান (কেবলমাত্র Aএই ক্ষেত্রে) আউটপুট বাইটের সর্বনিম্ন উল্লেখযোগ্য বিটকে রাখে।

এর সবকটির অর্থ হ'ল 0x1প্রথম '#' তত্ক্ষণাত্ অন্য '#' দ্বারা অনুসরণ করা হয় এবং 0x0অন্যথায় আমরা একটি পাই ।


4

সি, 35 বাইট

f(char*s){while(35^*s++);return*s;}

প্রাগমেটিক প্রোগ্রামার এর উত্তর হিসাবে একই ধারণা : "ডান", এবং "বাম" জন্য #- প্রথমটি এবং এর পরে কী ফলাফল আসে তা সন্ধান করুন ।#<space>

সি (লুফোল), 16 বাইট

পরীক্ষার কেস অনুসারে, দেখে মনে হচ্ছে বাম রাস্তাটি সর্বদা বাম মার্জিন থেকে ঠিক এক স্থান is তাই ...

#define f(s)2[s]

লুফোলটি উদ্দেশ্যপ্রণোদিত ছিল না, সেই পরীক্ষার কেসগুলি ভুল ছিল। তবে আপনার সি উত্তর চিত্তাকর্ষক!
programmer5000

3

ব্যাচ, 46 বাইট

@set/ps=
@for %%a in (%s%)do @echo %%a&exit/b

STDIN থেকে একটি লাইন পড়ে, এটি স্পেসে বিভক্ত করে এবং প্রথম শব্দটি প্রিন্ট করে, তাই #বাম এবং ##ডানদিকে আউটপুট দেয় । যদি উদ্ধৃত কমান্ড-লাইন পরামিতিগুলির একটি অ্যারে গ্রহণযোগ্য হয় তবে 36 বাইটের জন্য:

@for %%a in (%~1)do @echo %%a&exit/b

প্রথম যুক্তিটি উদ্ধৃত করে যাতে এটি স্পেসে বিভক্ত হয়ে যায় এবং এর প্রথম শব্দটি মুদ্রণ করে।



3

রেটিনা , 5 বাইট

!1`#+

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

একটি বিকল্প 5 বাইট সমাধান। #বাম এবং ##ডানদিকে প্রিন্ট করুন । ধারণাটি হ'ল সমস্ত #(গুলি #+) এর সাথে রান করা এবং মুদ্রণ ( !) এর মধ্যে কেবল প্রথমটি ( 1)।


3

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

f n=snd$span(==' ')n!!1

বা বিন্দু মুক্ত শৈলীতে:

(!!1).snd.span(' '==)

"#" এর অর্থ ডান, এবং "" এর অর্থ বাম

ফাংশনটি কেবল একটি স্ট্রিং নেয়, প্রারম্ভিক স্পেসগুলি ড্রপ করে এবং তারপরে, এটি দ্বিতীয় অক্ষর লাগে (বাম চিকন হলে স্থান এবং # বাম ঘন হলে)

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


বেনামে ফাংশনগুলি গ্রহণযোগ্য, তাই (!!2).dropWhile(' '==)উত্তর হিসাবে যথেষ্ট।
লাইকোনি

এটি !!1২ য় উপাদানটির জন্য। আপনি পরীক্ষাটি ছোট করতে পারেন <'!'। পয়েন্টফ্রি সংস্করণে, আপনি এটি dropWhileদ্বারা প্রতিস্থাপন করতে পারেন snd.span
নিমি


2

পার্ল 5 , 8 + 1 = 9 বাইট

die$F[0]

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

সাথে চালাও -a(1 বাইট পেনাল্টি) ।

যদি বাম রাস্তাটি কম ভ্রমণ করা হয়, বা ডান রাস্তাটি কম ভ্রমণ করা হয় তবে আউটপুট (যেখানে ফাইলটির নাম স্ক্রিপ্টের ফাইল নাম) ।# at filename line 1, <> line 1## at filename line 1, <> line 1

ব্যাখ্যা

-aবিকল্প স্বয়ংক্রিয়ভাবে ইনপুট পড়ে এবং হোয়াইটস্পেস প্রায় কলাম সেটিকে splits শীর্ষস্থানীয় হোয়াইটস্পেস উপেক্ষা। এই হিসাবে, ইনপুটটির প্রথম ডাটামটি আমাদের যা প্রয়োজন তা হল; যে $F[0]। এটি প্রোগ্রামকে একটি অন্তর্নিহিত লুপে রাখে, যা আমরা চাই না। তবে এর ব্যবহারের dieসাহায্যে একই সাথে (এবং sayস্ট্রিং প্রিন্ট করার জন্য আরও সাধারণ উপায় ছাড়া আর কোনও অক্ষর না থাকলে) আমরা একটি স্ট্রিং আউটপুট করতে এবং অন্তর্নিহিত লুপটি প্রস্থান করতে পারি ।


দুর্দান্ত সৃজনশীলতা এবং লো বাইট গণনা! দুর্ভাগ্যক্রমে, ইতিমধ্যে একটি 2-বাইট উত্তর আছে। আপনি এই সিরিজের তৃতীয় চ্যালেঞ্জ চেষ্টা করতে আগ্রহী ?
programmer5000

2
@ প্রোগ্রামার ৫০০: আমি মনে করি না পার্লের 2-বাইট উত্তর আছে (এবং বাস্তবে এটি বর্তমানে নন-গল্ফিং ভাষায় সংক্ষিপ্ত উত্তর)। সাধারণত, আমরা লক্ষ্য করি প্রতিটি ভাষায় / প্রতিটি পদ্ধতির মাধ্যমে সেরা সমাধান সন্ধান করা, অন্যথায় গল্ফিংয়ের ভাষা ছাড়া অন্য কিছু ব্যবহার করার কোনও মানে নেই।

2

সি 54 বাইট

char*strchr();char c(char*s){return*(strchr(s,35)+1);}

সি ++ 58 বাইট

#include<cstring>
char c(char*s){return*(strchr(s,35)+1);}

যেহেতু ওপি নির্দিষ্ট করেছে এটি একটি "প্রোগ্রাম / ফাংশন" হতে পারে আমি অক্ষরগুলি সংরক্ষণ করার জন্য একটি ফাংশন লিখতে নির্বাচিত হয়েছি। যাইহোক, আমি তবুও "# অন্তর্ভুক্ত" বিবৃতি এবং সাথে ফাংশন সংকলন করার জন্য প্রয়োজনীয় চরিত্র গণনায় লাইন বিরতি অন্তর্ভুক্ত করেছি।

আউটপুট

" "বাম বা একটি হ্যাশ নির্দেশ করতে একটি স্থান অক্ষর প্রদান করে"#" ডান নির্দেশ করতে অক্ষর প্রদান করে।

ব্যাখ্যা

Strchr () ফাংশন একটি প্রদত্ত স্ট্রিং হাঁটে এবং একটি নির্দিষ্ট অক্ষরের প্রথম উপস্থিতিতে একটি পয়েন্টার প্রদান করে। এটিতে একটি ওভারলোড রয়েছে যা একটি পূর্ণসংখ্যাকে দ্বিতীয় যুক্তির হিসাবে স্বীকৃতি দেয় যা আমাকে 1 টি চরিত্র সংরক্ষণ করে character উদাহরণস্বরূপ '#' 35 এর সাথে প্রতিস্থাপন করা যেতে পারে I আমি তত্ক্ষণাত অক্ষরটি অনুসরণ করার জন্য ফাংশন থেকে ফিরে পয়েন্টারটিতে একটি যুক্ত করব এবং এটি অবলম্বন করব, তারপরে ফলাফলের চরটি ফিরিয়ে দিন।

বিঃদ্রঃ

আমি যখন গল্ফ চেষ্টা করছি তখন আমার কোডটি স্বয়ংক্রিয়ভাবে ভিজ্যুয়াল স্টুডিওতে আমার বিরক্তি প্রকাশ করার জন্য এই সুযোগটি নিতে চাই ((° □ °)) ╯︵ ╯︵) ┻━┻

সম্পাদনা করুন: সি এবং সি ++ এর মধ্যে কিছু পার্থক্য চিহ্নিত করার জন্য এবং যেখানে আমি অক্ষরগুলি সংরক্ষণ করতে পারি তার জন্য রেকে ধন্যবাদ <3।


সি / সি ++ কোনও ভাষা নয়: এমন এক্সপ্রেশন রয়েছে যার অর্থ সি এবং সি ++ এ বিভিন্ন জিনিস। উদাহরণস্বরূপ, সি ++ এ, যদি কোনও ফাংশনটির খালি প্যারামিটার তালিকা থাকে তবে এর অর্থ এটি কোনও আর্গুমেন্ট নেয় না। যদিও সি তে, এর অর্থ প্যারামিটারগুলি অনির্ধারিত ified তাই আপনি যদি সিদ্ধান্ত নেন এই একটি সি প্রোগ্রাম হয়, তাহলে আপনি প্রতিস্থাপন করতে পারেন #include <string.h>\nসঙ্গে char*strchr();এবং 6 বাইট সংরক্ষণ এখনও পুরোপুরি আইনি হচ্ছে। (এবং যদি আপনি সি ++ কারনের জন্য চান, তবে আপনি প্রতিস্থাপন করতে পারেন #include <string.h>সঙ্গে #include <cstring>এবং সংরক্ষণ 1 বাইট।)
সত্যজিৎ

মজার বিষয়, আমি সে সম্পর্কে অবগত ছিলাম না। ধন্যবাদ আমার উত্তর আপডেট।
প্রগমেটিক প্রোগ্রামার

1

জাভাস্ক্রিপ্ট (ES6), 37 বাইট

p=s=>/^ *#( |$)/.test(s.split("\n")[0])

ব্যাখ্যা:

p এটি একটি ফাংশন যা প্রত্যাবর্তন করে true রাস্তাটি বাম দিকে থাকে এবং অন্যথায় মিথ্যা হয়এটি এই সাইটে আমার প্রথম উত্তর, যাতে সম্ভবত এটি আরও গল্ফ করা যেতে পারে (সম্ভবত রেজিক্স))

এটি ইনপুটটির শীর্ষ লাইনটি গ্রহণ করে এবং এটি রেজেক্সের সাথে মেলে কিনা তা দেখে কাজ করে /^ *#( |$)/(স্ট্রিংয়ের শুরু, কোনও পরিমাণ স্পেস, একটি #, এবং একটি স্পেস বা স্ট্রিংয়ের শেষ))

এটি কেবলমাত্র ফর্ম্যাট সম্পর্কে ধারণা প্রদান এবং ধারণা তৈরি করার জন্য। আমি নিশ্চিত এটি আরও বীট এবং গল্ফ করা যেতে পারে। শুভ গল্ফিং!

p=s=>/^ *#[^#]/.test(s.split("\n")[0])
<textarea rows = "8" cols = "8" oninput = "console.log(p(this.value))"></textarea>


আমি মনে করি আপনার ব্যবহারকারীর পরিবর্তে একটি স্থান থাকতে পারে[^#]
ব্যবহারকারীর 41805

ফিক্সড রেজেক্স ইস্যু।
programmer5000

আমি একটি সংক্ষিপ্ত জাভাস্ক্রিপ্ট উত্তর তৈরি করেছি ।
ডেভিড আর্কিবাল্ড


1

এক্সেল, 17 বাইট

=left(trim(A1),2)

ঘরে ইনপুট ধরে নেয় A1

বাম দিকে ##ডান এবং #( #এবং স্থান) ফেরত দেয় ।


1

ডাইভিল , 12 বাইট

s=>s.trim[1]

ব্যাখ্যা:

s=>          // lambda expression
   s.trim    // removes leading (and trailing) whitespace
         [1] // gets the second character

ব্যবহার:

let f: String -> char = s=>s.trim[1]
print f('...')

বাম এবং #ডানদিকের জন্য (সাদা স্থান) ফেরত দেয় ।


1

জাভা 7, 166 66 63 52 43 বাইট

int c(String s){return s.trim().charAt(1);}

35ডান এবং 32বাম জন্য আউটপুট । @ ক্ল্যাশসফ্টের ডাইভিল উত্তরের
উপর ভিত্তি করে ।

ব্যাখ্যা:

int c(String s){   // Method with String parameter and integer return-type
  return s.trim()  //  Remove leading and trailing whitspaces
   .charAt(1);     //  and return the second character (as int value)
}                  // End of method

পরীক্ষার কোড:

class M{
  static int c(String s){return s.trim().charAt(1);}

  public static void main(String[] a){
    System.out.println(c(" ##    #\n  ##  #\n   ###\n    #\n    #\n    #"));
    System.out.println(c(" ##  #   \n  ## #  \n   ###\n    ##\n     #\n     #\n     #"));
    System.out.println(c(" ##  #   \n  ## #  \n   ###\n    ##\n   # \n  #  \n #   "));
    System.out.println(c(" ##   #  \n  ## #  \n   ###\n    #\n   # \n  #  \n  #  "));
    System.out.println(c(" #    ## \n  #  ## \n   ###\n    #\n   # \n  #  \n  #  "));
    System.out.println(c(" #    ## \n  #  ## \n   ###\n    #\n     #\n     #\n     #"));
  }
}

এখানে চেষ্টা করুন।

আউটপুট:

35
35
35
35
32
32

0

বেফঞ্জ 98, 11 বাইট

-!jv~'
@.~<

অনলাইনে চেষ্টা করে দেখুন!

32বাম জন্য প্রিন্ট , এবং35 ডানদিকের জন্য দু'টি একক চলমান স্থান সহ ।

ব্যাখ্যা

-!jv      This is a no-op the first time through, but used later

    ~'    Pushes the ASCII value of the next character, and pushes 32
-!        Subtracts the 2, and nots. If the character was a space, the top will be 1
  jv      Goes to the second line if the character was not a space

  ~<      Pushes the next characer's ASCII value
 .        Prints it (32 for " " and 35 for "#")
@         Ends the program

আমি যে কৌশলটি ব্যবহার করেছি তা হ'ল -!jvপ্রথমটি লাগানো , যদিও এটি কিছু না করে। এটি আমাকে উভয়কে পরে স্থান থেকে মুক্তি দিতে 'এবং কিছু প্যাডিং সংরক্ষণ করতে দেয়। এই শেষ সঙ্গে, কোড হবে

~' -!jv
   @.~<

15 বাইট জন্য।


0

রুবি, 20 বাইট

->r{r.strip[1]==' '}

বাম জন্য সত্য, ডান জন্য মিথ্যা।

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