অদৃশ্য পাঠ্য মুদ্রণ করুন


38

ইনপুট হিসাবে একটি স্ট্রিং দেওয়া হয়েছে, স্ট্রিংয়ের দৈর্ঘ্যের সমান বেশ কয়েকটি সাদা স্পেস অক্ষর (0x0A এবং 0x20) আউটপুট করুন।

উদাহরণস্বরূপ, স্ট্রিংটি দেওয়া Hello, World!আপনার কোডটির জন্য ঠিক 13 সাদা বর্ণের অক্ষর এবং অন্য কিছুই আউটপুট করতে হবে। এগুলি কোনও স্থান এবং নতুন লাইনের মিশ্রণ হতে পারে।

আপনার কোডে কোনও অতিরিক্ত ট্রেলিং নতুনলাইন বা স্পেসগুলি আউটপুট করা উচিত নয়।

Testcases:

     Input      -> Amount of whitespace to output
"Hello, World!" -> 13
"Hi"            -> 2
"   Don't
Forget about
Existing
Whitespace!   " -> 45
""              -> 0
"             " -> 13
"
"               -> 1

স্কোরিং:

এটি এত কম বাইট জয়!


1
আপনি "0x0A" দিয়ে আপনার অর্থ কী তা আমি পাই না। কোথায় আউটপুট করা উচিত? এটি কি রাখা উচিত, সুতরাং "আবেক" "␠␠␠␊␠" হয়ে যায়?
manatwork

1
@ মান্যাটওয়ার্ক 0x0Aএবং 0x20যথাক্রমে
নিউলাইন

1
"বেশ কয়েকটি শ্বেতস্পেস অক্ষর আউটপুট (0x0A এবং 0x20)" - আউটপুটে এই নতুনলাইন অক্ষরগুলি কোথায় হওয়া উচিত?
manatwork

3
These can be any mix of spaces and newlinesআপনার আউটপুট শূন্যস্থান এবং নিউলাইনগুলির যে কোনও মিশ্রণ হতে পারে, আপনি চাইলে অন্য সকলের মতোই কেবল ফাঁকা স্থান আউটপুট করতে পারেন বা আপনি কেবল নিউলাইনগুলি আউটপুট করতে পারেন। এটি আপনার উপর
নির্ভর করে

1
বুঝেছি. ধন্যবাদ।
manatwork

উত্তর:


137

সাদা ব্যবধান , 311 150 77 68 65 46 41 38 বাইট

-3 বাইট কেভিন ক্রুইজসেনকে ধন্যবাদ -27 বাইট ধন্যবাদ এফফ্যাথাকে


  
   	 	 
 
  
 	
	 			
	  
	
  
 


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

একটি দৃশ্যমান বিন্যাস

'\n  \n   \t \t \n \n  \n \t\n\t \t\t\t\n\t  \n\t\n  \n \n\n'

ব্যাখ্যা (গুলি = স্থান, টি = ট্যাব, এন = নতুন লাইন)

nssn     # label(NULL) - loop start
ssststsn # push 10 in the stack -> [10]
sns      # duplicate the top of the stack -> [10, 10]
sns      # duplicate the top of the stack -> [10, 10, 10]
tnts     # read a single char from input, pop the stack and store at that address -> [10, 10] [10:<char that was read>]
ttt      # pop the stack and put the value at that adress on stack -> [10,<char>] [10:<char>]
ntssn    # jump to label(0) - since label(0) is not defined, the interpreter jumps to the end of the program - if the top of the stack (char) is 0 -> [10] [10:<char>]
tnss     # pop the top of the stack and print as ascii -> [] [10:<char>]
nsnn     # go back to the label(NULL)

25
এটি আসলে কাজ করে তা ধরে নিলে, এটি অবশ্যই বেশিরভাগ সৃজনশীল উত্তরের জন্য আমার ভোট জিতেছে
স্কিডসদেব 25:25 '

24
অপেক্ষা করুন উত্তর কোথায়? এটাও কি অদৃশ্য?
এরিক আউটগল্ফার

16
ব্ল্যাক ম্যাজিক এটি কি। আপনার কোডও নেই! -1
ক্রিস্টোফার

28
@ খ্রিস্টোফার আরও হোয়াইটস্পেস ম্যাজিকের মতো
রড

12
আমি জানতাম যে কেউ এই প্রশ্নের উত্তর একটি
শ্বেত

59

22
জ্যাপট এর জন্য কি গম্ভীরভাবে একটি বিল্টিন রয়েছে?
জঘন্য

22
@ মায়ুব ওয়েল এর একটি স্ট্রিংয়ের সমস্ত অক্ষরকে অন্যের সাথে প্রতিস্থাপনের জন্য একটি বিল্টিন রয়েছে এবং ডিফল্ট প্রতিস্থাপনটি একটি স্থান;)
টম

4
খুব সুন্দর! যারা প্রোগ্রাম চালাচ্ছেন তাদের জন্য আপনি -Qআউটপুটটির চারপাশে উদ্ধৃতি যুক্ত করতে ইনপুটটিতে পতাকা যুক্ত করতে পারেন । টিআইও
অলিভার

38

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

(>>" ")

এটি অনলাইন চেষ্টা করুন! ব্যবহার: (>>" ") "Hello, world!"

দুটি তালিকা দেওয়া (এবং স্ট্রিং হাস্কেলের অক্ষরের তালিকাগুলি) >>অপারেটর দ্বিতীয় তালিকার যতবার প্রথম তালিকার উপাদান রয়েছে ততবার পুনরাবৃত্তি করবে। " "দ্বিতীয় আর্গুমেন্ট হিসাবে সেট করার অর্থ আমরা ইনপুট স্ট্রিং দীর্ঘ হিসাবে অনেক স্পেস একত্রিত করি।


বিকল্প (একই বাইট গণনা):

(' '<$)

এটি অনলাইন চেষ্টা করুন! ব্যবহার: (' '<$) "Hello, world!"

কিছু মান এবং একটি তালিকা দেওয়া, <$অপারেটর তালিকার প্রতিটি মান প্রদত্ত মানের সাথে প্রতিস্থাপন করে। সুতরাং 5 <$ "abc"ফলাফল [5,5,5], এবং ' ' <$ "abc"মধ্যে " "

(<$)' 'আপনি যদি আমার কোডে আরও কিছু সামুদ্রিক প্রাণী সন্ধান করতে চান তবে ফাংশনটি সমানভাবে রচনা করা যেতে পারে ।


18
এটি একটি আরাধ্য ছোট ফিনলেস মাছের মতো
টেলর স্কট

21

ব্রেনফাক , 18 বাইট

++++++++++>,[<.>,]

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

ইনপুট প্রতিটি বাইট জন্য একটি নতুন লাইন মুদ্রণ। পরিবর্তে মুদ্রণ স্পেসে 4 বাইট যুক্ত হবে।


4
উত্তরোত্তর জন্য: মিকা লাম্মি একটি চৌকস 16-বাইট উত্তর পোস্ট করেছেন যা সমাধিস্থ হয়েছে। ,[>++++++++++.,]
লিন


17

রেটিনা, 3 4 বাইট

S\`.

পুরানো সংস্করণ, কাজ করে না কারণ রেটিনা একটি অনুচ্ছেদে লাইন ফিড প্রিন্ট করে।

।
 

(দ্বিতীয় লাইনে একটি স্থান রয়েছে)।


2
রেটিনা টিআইও ব্যবহার করা বেশ সহজ। এখানে আপনার উত্তরটি দেওয়া হয়েছে
ডিজিটাল ট্রমা

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

@ মার্টিনএেন্ডার আহহ নিশ্চিত ছিলেন না যে এটি কোনও রেটিনা বা টিআইও জিনিস কিনা। যদিও সেখানে একটি বাইট সংরক্ষণে সহায়তার জন্য ধন্যবাদ!
TheLethalCoder



11

সি #, 28 24 বাইট

s=>"".PadLeft(s.Length);

string28 বাইটের জন্য কনস্ট্রাক্টর ব্যবহার করে পুরানো সংস্করণ :

s=>new string(' ',s.Length);

3
ঠিক একই কাজ করতে চেয়েছিলেন
লিফডে ওয়েইন

1
আমি যখন আশেপাশে থাকি তখন @ স্টেফানডেলপোর্ট খুব দ্রুত সি # এর সাথে দ্রুত থাকতে হবে :) লিনক একই কাজ করার জন্য
এগিয়েছে


9

গণিত, 21 বাইট

StringReplace[_->" "]

1
চার্লিস্ট ইনপুট যদি অনুমোদিত হয় তবে এটি হতে পারে #/._->" "&। দুঃখের বিষয়, ইনপুটটি একটি স্ট্রিং এবং অক্ষর [] এটি আপনার সমাধানের চেয়ে এক বাইট দীর্ঘ করে তোলে :(
ক্যালকুলেটরফলাইন

1
এই প্রয়োজন একটি না #এবং &এতে? উদাহরণস্বরূপStringReplace[#,_->" "]&
ইয়ান মিলার

3
ম্যাথামেটিকাল 10.4 বা 11. মধ্যে না @IanMiller reference.wolfram.com/language/ref/StringReplace.html
alephalpha

2
আহ, ঠিক আছে. আমার কাছে কেবল 10.3 আছে। আপগ্রেড করার সময় হতে পারে ...
আয়ান মিলার

8

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

a=>a.replace(/./g," ")

f=a=>a.replace(/./g," ");

var test = f("Hello, World!");
console.log(test, test.length);


3
হু, আমি ভেবেছিলাম "ওহ ডার্ন, এটি হতে হবে s=>s.replace(/[^]/g," "), অন্য সমাধানের চেয়ে একটি বাইট দীর্ঘ"। আমার কাছে এটি ঘটেনি যে আউটপুটে নতুন
লাইনের

8

সি, 31 বাইট

f(char*c){puts(""),*c++&&f(c);}

1
এটি আপনার অন্যান্য সি উত্তর থেকে কীভাবে আলাদা ? স্পষ্টতই এটি একটি সংক্ষিপ্ত, তবে আপনার কি অন্যটি সম্পাদনা করা উচিত? এটি দুটি সমাধান সহ কেবল একটি উত্তর হওয়া উচিত?
তাস

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

কমাটি কি সত্যই কমা হওয়া উচিত এবং সেমিকোলন নয়?
ওসকার স্কোগ

1
@ অস্কারস্কোগ ভাল, এক্ষেত্রে এটি তেমন গুরুত্ব দেয় না কারণ কোনও এলএইচএস নেই
বিড়াল

1
@ অস্কারস্কোগ হ্যাঁ, এটি কমা হওয়া উচিত। যেমন @ কেট বলেছে, এটি আসলে এই ক্ষেত্রে গুরুত্বপূর্ণ নয় তবে আমি পরিবর্তনের জন্য কমা বেছে নিয়েছি :) কমা অপারেটর দুটি এক্সপ্রেশন মূল্যায়ন করে (উদাহরণস্বরূপ i++, j++লুপের জন্য) এবং ডানদিকের একটিটি প্রদান করে। একটি গুরুত্বপূর্ণ বিবরণ হ'ল পুনরাবৃত্তিটি কোনওভাবে থামতে হবে। &&LH মিথ্যা থাকলে এটি আরএইচএসের মূল্যায়ন করে না। *c++মিথ্যাটিকে মূল্যায়ন করে যখন এটি স্ট্রিংয়ের নাল-সমাপ্তির দিকে নির্দেশ করে।
সিগভালডেম


7

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

বেনামে ভিবিই তাত্ক্ষণিক উইন্ডো ফান্ট যা সেল থেকে ইনপুট নেয় [A1]এবং ভিপিই তাত্ক্ষণিক উইন্ডোতে ইনপুটটির দৈর্ঘ্যের ফাঁকা স্থান দেয়

?Spc([Len(A1)])

7

05 এ বি 1 , 3 বাইট

vð?

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

v   # For each character...
 ð? #    Output a space without a newline

অন্যান্য 3 বাইট সমাধান (ধন্যবাদ বেশিরভাগের জন্য ম্যাজিক অক্টোপাস উরন এবং কেভিন ক্রুইজসেন )

v¶? # For each character print a newline (without adding a newline)
võ, # For each character print the empty string with a newline
gð× # Get the length, concatenate that many copies of space
g¶× # Get the length, concatenate that many copies of newline
Sð: # Split, push a space, replace each char in input with a space
ðs∍ # Push ' ', swap, make the string of spaces as long as the input was
võJ # For each char, push a space and ''.join(stack)
v¶J # For each char, push a newline and ''.join(stack)
€ðJ # For each char, push a space. Then ''.join(stack)
ۦJ # For each char, push a newline. Then ''.join(stack)

1
অন্যান্য সমাধান: gð×: বাকি আমি নিয়ে এসেছেন মত 3 উপরে ছিলõ‚.B¤
ম্যাজিক অক্টোপাস ভস্মাধার

2
আর একটি মজাদার:Sð:
ম্যাজিক অক্টোপাস উরন


আরও কিছু বিকল্প 3-বাইটার: võJ/ v¶J; €ðJ/ €¶J। এবং যেহেতু I / O হিসাবে অক্ষরের একটি অনুক্রমের ডিফল্টরূপে যখন I / O স্ট্রিং জিজ্ঞাসা করা হয়, তখন কিছু 2-বাইট সংস্করণ সম্ভব: €ð/ €¶/ εð/ ε¶এবং ð:/ ¶:। যদিও এটি বেশ পুরানো চ্যালেঞ্জ এবং অন্যান্য সমস্ত উত্তর প্রকৃত স্ট্রিং ব্যবহার করে, আমি বুঝতে পারতাম আপনি এটি স্ট্রিং I / O হিসাবে রেখেছেন কিনা।
কেভিন ক্রুইজসেন



6

সি, 45 বাইট

প্রধান ব্যবহার। জিসিসি দিয়ে সংকলন করুন, সতর্কতাগুলি উপেক্ষা করুন।

main(c,v)char**v;{while(*(v[1]++))puts("");}

ব্যবহার:

$./a.out "Hello, World!"

1
কোন কারণে আপনি করা না পারেন char**vমধ্যে main(c,v)?
ক্যালকুলেটরফলাইন

@ ক্যালকুলেটরফলাইন কমপক্ষে জিসিসি 6.3.1 সংকলন gcc main.cকরে এএনএসআই ফাংশন সংজ্ঞা কে ও আর ফাংশন সংজ্ঞা সাথে মিশ্রিত করার অনুমতি দেয় বলে মনে হয় না, তাই main(c,char**v)সংকলন করবে না। আমার হয় হয় যা হয় main(int c,char**v)বা main(c,v)char**v;এর মধ্যে 3 বাইট সংক্ষিপ্ত। আপনি সুযোগে কোনও পতাকা বা এমন কিছু জানেন না যা এই শৈলীর মিশ্রণের অনুমতি দেয়?
সিগভালডেম

3
না, আপনি তাদের মিশ্রিত করতে পারবেন না। এটির অনুমতি দেয় এমন কোনও পতাকা নেই। কে ও আর স্টাইলটি দীর্ঘ অপ্রচলিত, কেবল কোড গল্ফিং এবং অবলম্বন উদ্দেশ্যেই ব্যবহৃত হয়।
কোডি ধূসর

এবং আমি char**vসম্পূর্ণরূপে অপসারণটি সংকলন করে না বলে অনুমান করছি ।
ক্যালকুলেটরফলাইন

@ ক্যালকুলেটরফলাইন যদি আপনি char**সম্পূর্ণরূপে বাদ দেন তবে সংকলক হিসাবে এটি ব্যাখ্যা করবে int। যদি আমি ভুল না হয়ে থাকি intতবে আপনি একটি ডিরিফার করার চেষ্টা করে একটি ত্রুটি পেয়েছেন এবং আপনি যদি প্রোগ্রামটি না করেন তবে আপনি যেটি প্রত্যাশা করেছিলেন তা না করায় যেহেতু একজন intবেশ কয়েকটি ব্যবহার করে charএবং তাই আপনি কখনই কোনও NULLমূল্য পাবেন না ।
সিগভালডেম



5

> <> , 7 বাইট

i0(?;ao

প্রোগ্রামটি একটি লুপ

i         //Push a character from the input onto the stack
 0        //Add a 0 to the stack
  (       //Pop the top two values of the stack, and push a 1 if the second is less than the first (In this case, the input has all been read), else push a 0
   ?      //Pop the top of the stack. If the value is a 0, skip the next instruction
    ;     // Terminate the program
     a    // Add a newline to the stack
      o   // Pop the top character of the stack and print it


5

হেক্সাগনি , 12 11 বাইট

-১ বাইট ধন্যবাদ মার্টিন ইন্ডারকে

,<.;.M@.>~8

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

এখানে প্রসারিত হেক্সসটি রয়েছে:

  , < . 
 ; . M @
. > ~ 8 .
 . . . .
  . . .

ইনপুট থাকা অবস্থায় এই কোডটি চালায়:

,        # Get input
 <       # Turn right (SE) if we didn't get EOF
  M8     # Set the memory edge to 778 which is 10 (mod 256)
    ;    # Print as a character (newline)
     >   # Redirect East
      ~  # Multiply by -1. This makes the pointer go to the top when it runs off the edge
       8 # Effectively a no-op.

ইওএফ পৌঁছে গেলে:

,    # Get input
 <   # Turn left (NE)
  8  # Effectively a no-op
   @ # End program

আপনি তিনটি বাইটে একটি লাইনফিড মুদ্রণ করতে পারেন M8;(যা 778 = 10 (মোড 256)) দিয়ে। এটি আপনাকে এখনই ~যেখানে ;বাইট সংরক্ষণ করছে সেখানে সরাতে দেয় ।
মার্টিন ইন্ডার


5

পাইথন 2, 25 বাইট

exec'print;'*len(input())

-২ বাইট
অবৈধ কোডে লুভজো -২ বাইটকে ধন্যবাদ পুরোপুরি মানবদেহকে ধন্যবাদ: পি
-৩ বাইট


1
execপাইথন 2
লুভজো

1
@ লভজো ওহ ঠিক আছে, পাইথন ২. ধন্যবাদ!
হাইপারনিউটারিনো

আমি জানি এটি পুরানো এবং স্টাফ তবে exec'print;'*len(input())কাজ করে।
নিখুঁতভাবে

1
@ টোটালিহুমান ওহ সত্য, ধন্যবাদ: পি
হাইপারনিউটারিনো

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


4

কিউবিক্স , 6 বাইট

ওয়াহু একটি 6 বাইটার!

wi?@oS

Cubified

  w
i ? @ o
  S
  • i ইনপুট পায়
  • ? স্ট্যাকের পরীক্ষা শীর্ষ
    • নেতিবাচক হলে (EOI) wলেন পরিবর্তনতে পুনর্নির্দেশ করা হয় যা কোনটি আম্প করে@ থামে থামে
    • যদি 0 (নাল) থামায় এটি আঘাত করা উচিত নয়
    • যদি Sowস্ট্যাক, আউটপুট এবং লেনটিকে ধীরে ধীরে ধাক্কা দেয়i

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


1
মিষ্টি, এটি প্রায়শই ঘন ঘন একটি কিউবিক্স প্রোগ্রাম নয় :-)
ইটিএইচ প্রোডাকশনগুলি


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