জাল মার্কি পাঠ্য


46

এই চ্যালেঞ্জটিতে জাল মার্কি টেক্সট হ'ল পাঠ্য যা ভাগ করে এক স্ক্রলিংয়ের মতো ফ্যাশনে প্রদর্শিত হয়।

কিছু উদাহরণ:

testing 4

   t
  te
 tes
test
esti
stin
ting
ing
ng
g


hello 2

 h
he
el
ll
lo
o


foobarz 3

  f
 fo
foo
oob
oba
bar
arz
rz
z


Something a bit longer 10

         S
        So
       Som
      Some
     Somet
    Someth
   Somethi
  Somethin
 Something
Something 
omething a
mething a 
ething a b
thing a bi
hing a bit
ing a bit 
ng a bit l
g a bit lo
 a bit lon
a bit long
 bit longe
bit longer
it longer
t longer
 longer
longer
onger
nger
ger
er
r


small 15

              s
             sm
            sma
           smal
          small
         small
        small
       small
      small
     small
    small
   small
  small
 small
small
mall
all
ll
l


aaa 3

  a
 aa
aaa
aa
a


brace yourself 6

     b
    br
   bra
  brac
 brace
brace 
race y
ace yo
ce you
e your
 yours
yourse
oursel
urself
rself
self
elf
lf
f

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

যদি আপনার প্রোগ্রামটি স্বতন্ত্র থাকে (যেমন চালানো আসলে লাইনগুলি মুদ্রণ করে) (ইনপুটটি হার্ড-কোডড তবে পরিবর্তন করা সহজ) এবং আউটপুটের প্রতিটি লাইনের মধ্যে কিছুটা ঘুমিয়ে গেলে আপনি একটি -10 বোনাস পান।


"অন্তর্ভুক্ত আউটপুট" বলতে কী বোঝ?
অপ্টিমাইজার

1
এছাড়াও, আমাদের কি প্রথম এবং শেষ লাইনগুলি প্রিন্ট করতে হবে যা কেবল ফাঁকা স্থান?
অপ্টিমাইজার

2
দ্বারা অনুপ্রাণিত এই ?
স্পিক্যাট্রিক্স

1
শুরুতে একটি একক খালি লাইন অনুমোদিত বলে মনে হচ্ছে। শেষে আরেকটি ফাঁকা লাইন কেমন হবে?
নিমি

2
যেহেতু আপনি "কেবল দৃশ্যমান আউটপুট" সম্পর্কে কথা বলছেন, তাই আমরা কি ধরে নিতে পারি যে ইনপুটটি কেবল প্রিন্টযোগ্য এএসসিআইই হবে? (চরিত্রের কোড 0x20 থেকে 0x7E)
মার্টিন

উত্তর:


24

সিজেম, 12 11 বাইট

ডেনিস দ্বারা 1 বাইট সংরক্ষণ করা।

,Sf*\f+$zN*

আমি "ইনপুটটি হার্ড-কোডড তবে পরিবর্তন করা সহজ" ব্যবহার করছি: এটি ইনপুটটি ইতিমধ্যে স্ট্যাকের মধ্যে রয়েছে বলে আশা করছে "testing" 4, উদাহরণস্বরূপ, আপনি উপরেরগুলিতে প্রিপেন্ড করতে পারেন ।

এটি এখানে পরীক্ষা করুন।

ব্যাখ্যা

লক্ষ্য করুন যে পছন্দসই আউটপুটটির স্থানান্তর অনেক সহজ:

   testing
  testing
 testing
testing

সুতরাং আমাদের কেবল nলাইন তৈরি করতে হবে , নীচের থেকে নীচে পর্যন্ত iস্পেস প্রিপেন্ডিং করতে হবে । কোডটি এটাই করে:in-10

,            e# Turn n into a range [0 1 .. n-1]
 Sf*         e# Turn each i into a string of i spaces.
    \f+      e# Swap this array with the input string and append it to each of the
             e# strings of spaces.
       $     e# Sort the array to have the string with n-1 spaces first.
        z    e# Transpose the grid.
         N*  e# Join the lines with newline characters.

19 - 10 = 9?

আমি "প্রতিটি লাইনের মাঝে কিছুটা ঘুমিয়ে" পেয়েছি বোনাসটি কিছুটা অস্পষ্ট এবং ছদ্মবেশী, তবে এখানে একটি 19 বাইট সংস্করণ যা প্রতিটি লাইনের পরে অ্যারের সমস্ত অনুমতি গণনা করে স্টল করে [0 1 .. 7]। অনলাইন ইন্টারপ্রেটারে এটি কেবল চূড়ান্ত ফলাফলটি কিছুটা পরে দেখানো হয়, তবে আপনি যদি জাভা দোভাষী ব্যবহার করেন তবে এটি প্রতিটি লাইনটি "কিছুটা ঘুমানোর পরে" মুদ্রণ করবে:

,Sf*\f+$z{oNo8e!;}/

ভাল ব্যবহার z। ইনপুট ধরে নেওয়া যাক মুদ্রণযোগ্য হওয়া ASCII, আপনি প্রতিস্থাপন করতে পারেন হয় W%সঙ্গে $
ডেনিস

@ ডেনিস ওহ, আমি এটি পছন্দ করি। আমি ওপি থেকে এ বিষয়ে স্পষ্টির জন্য অনুরোধ করেছি। (এটি বলেছে যে, আমি zএসকিআই গ্রিড-ভিত্তিক চ্যালেঞ্জের জন্য সমস্ত সময় ব্যবহার করি ))
মার্টিন ইন্ডার

15

সি, 69 বাইট

প্রিন্টফ ম্যাজিক!

f(s,n,i)char*s;{for(i=n;*s;i?i--:s++)printf("%*s%.*s\n",i,"",n-i,s);}

কিছু ব্যাখ্যা সহ প্রসারিত সংস্করণ:

f(s,n,i)char*s;{       /* s is the string, n is the width of the grid. */
  for(i=n;             /* i is the number of preceding spaces. */
      *s;              /* Stop once we reach the end of the string. */
      i?i--:s++)       /* Decrease the number of spaces, and when there's 
                          none left start truncating the string itself. */
  printf("%*s          /* The first argument is the minimum width to print the 
                          string (left padded with spaces) and the second 
                          argument is the string to print. We use the empty 
                          string just to print the i spaces. */
    %.*s              /* The third argument is the maximum number of 
                         characters from the string (which is the fourth 
                         argument) to print. */
    \n",i,"",n-i,s);
}

এবং এখানে একটি উদাহরণ:

/ ./marquee স্ট্যাকওভারফ্লো 12

           গুলি
          St
         Sta
        stac
       গাদা
      stacko
     stackov
    stackove
   stackover
  stackoverf
 stackoverfl
stackoverflo
tackoverflow
ackoverflow
ckoverflow
koverflow
টলমলানি
verflow
erflow
rflow
প্রবাহ
কম
Ow
W


6

পাইথন 65 63

s=lambda t,s:'\n'.join((' '*s+t)[i:s+i]for i in range(len(t)+s))

এটি উদাহরণস্বরূপ লিখতে ব্যবহৃত হয়েছিল। বেসলাইন সমাধান।

>>> print(s("foobarz", 3))

  f
 fo
foo
oob
oba
bar
arz
rz
z

2
আমি এটি পরীক্ষা করে দেখিনি তবে আপনি ভিতরে স্কোয়ার বন্ধনীগুলি সরাতে সক্ষম হবেনjoin
আন্ডারগ্রাউন্ডোমোরিয়েল

@undermonmonilil ডান
Caridorc

6

জাভাস্ক্রিপ্ট ( ES7 খসড়া ), 61 বাইট

f=(s,l)=>[x.substr(i,l)for(i in x=' '.repeat(l)+s)].join(`
`)
<input id="str" value="Some String" />
<input id="num" value="5" />
<button onclick="out.innerHTML=f(str.value, +num.value)">Run</button>
<br /><pre id="out"></pre>

জাভাস্ক্রিপ্ট ( ES6 ) হার্ডকোডযুক্ত ইনপুট, 47 বাইট

ভেরিয়েবল s(স্ট্রিং) এবং l(দৈর্ঘ্য) এর হার্ড-কোডড ইনপুটগুলি ধরে নিলে , প্রতিটি লাইনের জন্য একটি সতর্কতা সহ এটি 47 টি বাইট মুদ্রণে কমানো যেতে পারে :

for(i in x=' '.repeat(l)+s)alert(x.substr(i,l))

5

কে, 19 বাইট

{x#'![1]\(x#" "),y}

ট্যাক xস্থান ( x#" ") স্ট্রিংয়ের শুরু সম্মুখের y। তারপরে \ঘোরানো স্ট্রিংগুলির সেট তৈরি করতে অপারেটরের "ফিক্সড-পয়েন্ট স্ক্যান" ফর্মটি ব্যবহার করুন । K এর একটি স্থির-পয়েন্ট পুনরাবৃত্তি থামিয়ে দেয় যদি ফাংশন প্রয়োগের ফলাফল পুনরাবৃত্তি করে বা প্রাথমিক ইনপুটটি পুনরায় দেখা হয়। যেহেতু ![1]একবারে একটি স্ট্রিং এক ধাপে আবর্তিত হবে, ![1]\এটি চক্রীয় অনুক্রমের জন্য একটি দুর্দান্ত প্রতিমা। তারপরে আমরা ফলাফলগুলি দিয়ে কেবল ছাঁটাই করি x#'

একটি নমুনা রান:

  {x#'![1]\(x#" "),y}[4;"some text"]
("    "
 "   s"
 "  so"
 " som"
 "some"
 "ome "
 "me t"
 "e te"
 " tex"
 "text"
 "ext "
 "xt  "
 "t   ")

5

জে (22)

এটি আমার প্রত্যাশার চেয়ে বেশি দিন শেষ হয়েছিল, তবে আমার ধারণা এটি খুব খারাপ নয়।

[{."0 1[:]\.(' '#~[),]

মজাদার ঘটনা: এর মধ্যে নেই [এবং ]আসলে মিলছে বা একে অপরের সাথে কিছু করার আছে।


3 টি ছোট পরিবর্তনের পরে: [{."1]]\.@,~' '#~[(18 বাইট)।
এলোমেলো

5

জুলিয়া, 75 বাইট

(s,n)->(n-=1;print(join([(" "^n*s*" "^n)[i:n+i]for i=1:length(s)+n],"\n")))

এটি একটি নামবিহীন ফাংশন তৈরি করে যা স্ট্রিং এবং পূর্ণসংখ্যাকে ইনপুট হিসাবে গ্রহণ করে এবং আউটপুট প্রিন্ট করে। এটি কল করার জন্য, এটির একটি নাম দিন f=(s,n)->(...)

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

function f(s, n)
    # Decrement n by 1
    n -= 1

    # Construct the lines as an array using comprehension by repeatedly
    # extracting subsets of the input string padded with spaces
    lines = [(" "^n * s * " "^n)[i:n+i] for i = 1:length(s)+n]

    # Print the array elements separated by a newline
    print(join(lines, "\n"))
end

উদাহরণ:

julia> f("banana", 3)
  b
 ba
ban
ana
nan
ana
na 
a

julia> f("Julia", 6)
     J
    Ju
   Jul
  Juli
 Julia
Julia 
ulia  
lia   
ia    
a     

নোট এই সমাধান 66 বাইট যদি যে sএবং nঅধিকৃত হয় ইতিমধ্যে প্রোগ্রামে অস্তিত্ব।


5

কিউব্যাসিক, 56 - 10 = 46

এটি কিউব্যাসিককে গল্ফ করেছে - অটোফর্মেটরটি বিস্তৃত ?হবে PRINTএবং কিছু স্পেস যুক্ত করবে। কিউবি 64 এর সাথে পরীক্ষিত , যদিও এখানে এমন কিছু হওয়া উচিত যা ডস কিউব্যাসিকের সাথে কাজ করবে না।

s=SPACE$(n)+s
FOR i=1TO LEN(s)
?MID$(s,i,n)
SLEEP 1
NEXT

QBasic সাধারণত স্ট্রিং অপারেশন সঙ্গে ভাল নয়, কিন্তু খুব সুবিধামত হয় একটি ফাংশন যে আয় স্পেস একটি প্রদত্ত সংখ্যার!

"ইনপুটটি হার্ড-কোডেড হতে পারে" সহ কিছু স্বাধীনতা গ্রহণ করা এই কোডটি প্রত্যাশিত ধরণের এড়াতে , পাশাপাশি স্ট্রিংটি নির্ধারিত এবং সংখ্যাকে এড়াতে, পরিবর্তনশীল 'd' sহওয়ার প্রত্যাশা করে ।DIMAS STRING$sn

উপস্থাপনের উদাহরণ:

DIM s AS STRING
s="string"
n=4

আউটপুট:

   গুলি
  St
 Str
stri
Trin
রিং
ING
NG
ছ

শীর্ষ ফাঁকা সারিটি FOR1 এর পরিবর্তে 2 এ লুপ শুরু করে মুছে ফেলা হতে পারে ।

বোনাস: পল্ট্রি চার বাইটের জন্য CLSঠিক আগে যুক্ত NEXTকরা এটিকে ... সত্যিকারের মার্কে পরিণত করে !

বৃহৎ শিবির

আই PRINT CHR$(3)কিউ বেসিক। : ^ ডি


আমার আবার কিউব্যাসিক চেষ্টা করা উচিত ... এটিই আমি প্রথম শিখেছি
কানাডিয়ান লুক পুনরায় পোস্ট করুন মনিকা

5

রুবি, 68 , 55 বাইট

a=" "*$*[1].to_i+$*[0]+" ";a.size.times{|b|puts a[b...b+$*[1].to_i]}

@ ব্লুটোরেঞ্জের একটি আপডেটের পরে:

a=" "*(z=$*[1].to_i)+$*[0];a.size.times{|b|puts a[b,z]}

আউটপুট:

         S
        So
       Som
      Some
     Somet
    Someth
   Somethi
  Somethin
 Something
Something 
omething a
mething a 
ething a b
thing a bi
hing a bit
ing a bit 
ng a bit l
g a bit lo
 a bit lon
a bit long
 bit longe
bit longer
it longer 
t longer 
 longer 
longer 
onger 
nger 
ger 
er 
r 

ruby marquee.rb "Something a bit longer" 10

প্রথম জমা তাই সমালোচনা জিজ্ঞাসা।


1
আমার সাথে বেশ কিছু রুবি শর্টকাট ব্যবহার করে বেশ ভাল লাগছে। চূড়ান্ত স্থানটি প্রয়োজনীয় বলে মনে হচ্ছে না ("কেবলমাত্র দৃশ্যমান আউটপুট বিষয়গুলি"), এবং আপনি একটি অস্থায়ী ভেরিয়েবল ব্যবহার করে কিছু বাইট সংরক্ষণ করতে পারেন:a=" "*(z=$*[1].to_i)+$*[0];a.size.times{|b|puts a[b,z]}
ব্লুটোরেজ

প্রতিক্রিয়াটির জন্য ধন্যবাদ!
ডিকিবয়

আপনাকে স্বাগতম. আপনি চাইলে উত্তরটি নির্দ্বিধায় নির্দ্বিধায় করুন;)
ব্লুটোরেঞ্জ করুন

4

হাস্কেল, 61 59 54 বাইট

m n=unlines.scanr((take n.).(:))[].(replicate n ' '++)

ব্যবহারের উদাহরণ:

*Main> putStr $ m 6 "stackoverflow"

     s
    st
   sta
  stac
 stack
stacko
tackov
ackove
ckover
koverf
overfl
verflo
erflow
rflow
flow
low
ow
w

*Main> 

সম্পাদনা করুন: শুরুর / শেষে খালি লাইন অনুমোদিত


4

বাশ, 109 - 10 = 99 বাইট

আমি দেখতে পাচ্ছি যে আমার সমাধানটি লিখতে সময় নেওয়ার সময় আমাকে মারধর করা হয়েছে। তবুও, আমি এটি পোস্ট না করার জন্য এটি লিখতে অনেক বেশি সময় ব্যয় করেছি ...

এটি ছাড়াও এর কিছু অনন্য বৈশিষ্ট্য রয়েছে, যেমন বর্তমান ডিরেক্টরিতে কতটি রয়েছে তার উপর ভিত্তি করে লাইন প্রিন্টিংয়ের সাথে ব্যবহারকারী-সামঞ্জস্যযোগ্য হওয়ার সময় সময়! (আপনার ডিস্কটি কেমন অনুভব করে তার উপর নির্ভর করে কিছুটা বেমানান)

l=${#1};s=$1;for j in `seq 1 $2`;do s=" $s";done;for i in `seq 0 $((l+$2))`;do echo "${s:i:$2}";find 1>2;done

উদাহরণ:

cd <some directory in which you own everything recursively>
Marquee.sh "Test Case" 4

   T
  Te
 Tes
Test
est 
st C
t Ca
 Cas
Case
ase
se
e

অবহেলিত এবং মন্তব্য করেছেন:

l=${#1} #Length of the incoming string
s=$1 #Can't reassign to the parameter variables, so give it another name
for j in `seq 1 $2`; do
    s=" $s" # Put on the padding spaces
done

for i in `seq 0 $((l+$2))`; do
    #Cut the string and print it. I wish I could lose "padding" that easily!
    echo "${s:i:$2}" #Format is ${string:index:length}, so always the same
    # length, with the index moving into the string as the loop advances
    find 1>2  #Wait "a bit". From ~/, about 6 minutes per line on my junky 
    # computer with a huge home directory. Probably in the <1 sec range for
    # most people.
    #This actually has the same character count as sleep(X), but is much
    # more fun!
done

আমি সত্যিই এর আগে কখনও চেষ্টা করে দেখিনি। পরামর্শ এবং মন্তব্য স্বাগত!


4

খাঁটি বাশ, 61 বাইট

printf -vs %$2s"$1"
for((;++i<${#1}+$2;)){
echo "${s:i:$2}"
}

আউটপুট:

$ ./marquee.sh testing 4
   t
  te
 tes
test
esti
stin
ting
ing
ng
g
$ 

আমার ধারণা আমি পার্থক্য "বিশুদ্ধ" বাশ বুঝতে পারছি না, তাই সম্ভবত এই পরামর্শটি কোনও ভাল নয়, তবে ঘুম (1) হ'ল 8 টি অক্ষর এবং আপনাকে -10 (এবং এটি একটি জিএনইউ কোর ইউটিল) দেয়
সোম্পম

3

পার্ল, 50

$c=$" x$^I;$_="$c$_$c";sleep say$1while(/(?<=(.{$^I}))/g)

57+3জন্য অক্ষর -i, -nএবং -l-10ঘুমের জন্য অক্ষর।

-iসংখ্যার ইনপুট জন্য ব্যবহৃত হয় যা সঞ্চিত হয় $^I। মূলত, আমরা iইনপুটটির সামনের এবং শেষ অংশে ফাঁকা স্থান যুক্ত করি এবং তারপরে প্রতিটি iঅক্ষর অনুসন্ধান করি এবং সেগুলি দিয়ে লুপ করি whilesayস্বাচ্ছন্দ্যে ফিরে আসে 1যা আমরা ইনপুট করতে পারি sleep

echo "testing" | perl -i4 -nlE'$c=$" x$^I;$_="$c$_$c";sleep say$1while(/(?<=(.{$^I}))/g)'

আমি জানি এই পুরোনো, কিন্তু এটা শুধু সামনে পাতা সম্মুখের ফিরে jumped এবং আমি কিছুটা এই নিচে মাপে এ যান ছিল করেছি: s/^|$/$"x$^I/eg;sleep say$1 while s/.(.{$^I})/$1/। আপনি পতাকাটিও হারাতে পারেন -l, তবে আমার মনে হয়: আপনি যদি এর মাধ্যমে চালান তবে আপনার জন্য 5 টি গণনা করা উচিত -i -n(যেহেতু -iকোনও ডিফল্ট পতাকা নয়) echo -n "testing" | perl -i4 -nE'...'। এখনও ৪৪-এ নামা উচিত!
ডম হেস্টিংস

@ ডোমহাস্টিংস ডম ধন্যবাদ! ভাল কাজ, আমি পরে আমার উত্তর সম্পাদনা করব :)
hmatt1

3

পসিক্স শেল, ৯৪

[ $3 ]||set "`printf "%${2}s"`$1" $2 t
[ "$1" ]&&printf "%-.${2}s" "$1" "
"&&$0 "${1#?}" $2 t

আমি জানি এটি পার্লের কাছাকাছি দেখায় তবে এটি সত্যই শেল!

প্রথম লাইনটি প্রথম বারে লুপের মাধ্যমে প্রয়োজনীয় শীর্ষস্থানীয় স্পেস যুক্ত করে। এটি এটি করেছে তা নির্দেশ করতে এটি $ 3 সেট করে।

দ্বিতীয় লাইন (এনবি এমবেডড নিউলাইন) ইনপুট শেষ না হওয়া অবধি পুনরাবৃত্তি করে, স্ট্রিংয়ের প্রথম এন অক্ষরগুলি মুদ্রণ করে , এবং প্রথমে $ 1 থেকে সরানো প্রথম অক্ষরটি দিয়ে নিজেকে অনুরোধ করবে।

দেবিয়ান দিয়ে পরীক্ষিত /bin/dash- নমুনা আউটপুট অনুসরণ করে:

./marquee "টেস্টিং" 4

   t
  te
 tes
test
esti
stin
ting
ing
ng
g

./marquee "কিছুটা দীর্ঘতর" 10

         S
        So
       Som
      Some
     Somet
    Someth
   Somethi
  Somethin
 Something
Something 
omething a
mething a 
ething a b
thing a bi
hing a bit
ing a bit 
ng a bit l
g a bit lo
 a bit lon
a bit long
 bit longe
bit longer
it longer
t longer
 longer
longer
onger
nger
ger
er
r

./marquee "ছোট" 15

              s
             sm
            sma
           smal
          small
         small
        small
       small
      small
     small
    small
   small
  small
 small
small
mall
all
ll
l

-10 বোনাস পেতে আমি 9 টি অক্ষর যুক্ত করতে পারি! ["$ 1"] && মুদ্রণ "% -। $ {2} s" "$ 1" "" & & ঘুম 1 && $ 0 "$ {1 #?}" $ 2 টি
টবি স্পিড

3

পাইথন 2, 51 বাইট / 37 বাইট

হার্ডকোডযুক্ত ইনপুট (51 বাইট) ছাড়াই:

def f(s,n):
 s=" "*n+s
 while s:print s[:n];s=s[1:]

কল করুন f("testing", 4)

হার্ডকোডযুক্ত ইনপুট (37 বাইট) সহ:

s="testing";n=4

s=" "*n+s
while s:print s[:n];s=s[1:]

উভয় সংস্করণ ফাঁকা একটি প্রাথমিক লাইন আউটপুট।


3

পাইথন 2, (54 বাইট - 10 = 44) 64 62 60 46

(আমি ধরেছি হার্ড-কোডেড ইনপুটটির জন্য লাইনটি বাইট গণনায় যোগ করে না))

আমি এখনও এমন কোনও প্রোগ্রাম দেখিনি যা প্রকৃতপক্ষে প্রিন্টিং লাইনের মধ্যে ঘুমায়, তাই আমি এটি তৈরি করেছিলাম, কারণ এটি এটির চেয়ে আরও ভাল দেখাচ্ছে। পাইথন 3 এ এই প্রোগ্রামটি আরও 2 বাইট।

সম্পাদনা: প্রোগ্রামটি এখন ঘুমের পরিবর্তে একটি গণনা করে। আমি iগণনায় ব্যবহার করেছি যাতে প্রোগ্রামটি এটি ধ্রুবক হিসাবে সঞ্চয় না করে তবে প্রতিবার এটি গণনা করতে হবে।

পাইথন 3 টি এখানে চেষ্টা করুন (পাইথন 2 রিপ্লিটি বগি হয়)

i=0
while s[i-n:]:print((' '*n+s)[i:n+i]);i+=1;i**7**7

এর পরিবর্তে time.sleepআপনি কিছু দীর্ঘ গণনা ব্যবহার করতে পারেন? এছাড়াও, একটি whileলুপটি ব্যবহার করা কিছুটা সংক্ষিপ্ত :i=0\nwhile s[i-n:]:print(' '*n+s)[i:n+i];i+=1
xnor

@ এক্সনর এক্সফেনশনেশন কয়েকবার একটি গণনার জন্য বেশ ভাল কাজ করে।
mbomb007

@ mbomb007 আমি মনে করি না পাইথনটি করার জন্য আপনাকে গণনার মূল্য সঞ্চয় করতে হবে (যাতে আপনি 'কিউ =' সঞ্চয় করতে পারেন)। এছাড়াও, x ^ 7 ^ 7 গাণিতিকভাবে x ^ 49 এর সমতুল্য, যদিও পাইথন আমার কাছে উত্তরটিকে সামান্য দ্রুত সমাধান করতে বলে মনে হচ্ছে। আপনি কয়েকটি অক্ষর সেভাবে সংরক্ষণ করতে পারেন।
সোমবার 20 '13

@ সম্পম এটি পুনরায় চেষ্টা করুন। আমি যদি অভিব্যক্তিটিকে একক ক্ষত্রে সংহত করি তবে এটি সময়ের বিলম্ব পুরোপুরি সরিয়ে দেয়। তবে আমি সরিয়ে ফেলব q=। ধন্যবাদ।
mbomb007

@ সম্পম এক্সপেনসিয়েশন সঠিক-সংঘবদ্ধ, সুতরাং এটি আসলেi**(7**7)
স্প 3000

3

পাইথ, 12 বাইট

jb.:X*dyQQzQ

প্রদর্শন.


পাইথ, 17 - 10 = 7 বাইট

FN.:X*dyQQzQ&.p9N

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

নিম্নলিখিত চালান:

pyth -c 'FN.:X*dyQQzQ&.p9N' <<< 'testing
4'

এটিতে প্রতিটি মুদ্রণের আগে প্রায় ০.০ সেকেন্ডের বিলম্ব হয়। আপনি যদি আরও বেশি বিলম্ব পছন্দ করেন তবে আপনি এটি ব্যবহার করতে পারেন:

FN.:X*dyQQzQ&.pTN

এটিতে প্রায় 4 সেকেন্ড বিলম্ব রয়েছে।


3

জাভা, 133 119 115

int i;void f(String s,int n){for(;++i<n;)s=" "+s+" ";for(;i<=s.length();)System.out.println(s.substring(i-n,i++));}

দীর্ঘ সংস্করণ:

int i;
void f(String s, int n) {
    for(; ++i < n;)
        s = " " + s + " ";
    for(; i<=s.length();)
        System.out.println(s.substring(i-n, i++));
}

প্যাডিং স্ট্রিংয়ের সাথে প্রয়োগ করা হয় এবং তারপরে প্যাডড স্ট্রিংয়ের সাবস্ট্রিংগুলি কনসোলে মুদ্রিত হয়।

-4 বাইটস @ কেভিন ক্রুজসেনকে ধন্যবাদ thanks


আমি জানি এটি এক বছরেরও বেশি সময় হয়েছে, তবে আপনি দ্বিতীয় বারের জন্য কিছুটা লুপ করতে পারেন: for(;i<= s.length();System.out.println(s.substring(i-n,i++)));( -3 বাইট )
কেভিন ক্রুইজসেন

1
এর অর্থ এই নয় যে এটি উন্নত করা যায় না। :) ধন্যবাদ।
টিএনটি

2

মতলব, 95

সর্বদা হিসাবে, এটি ম্যাট্রিক্সের কারসাজি। এখানে মূলটি হ'ল কমান্ড spdiagsযা আপনাকে খুব সহজেই ডায়াগোনাল ম্যাট্রিক্স তৈরি করতে দেয়।

t=input('');
n=numel(t);
k=input('');
flipud(char(full(spdiags(repmat(t,n+k-1,1),1-n:0,n+k-1,k))))

হার্ডকোডিং সহ 71 বাইট (প্রত্যাশিত স্ট্রিং এতে সঞ্চিত tএবং এতে নম্বর k)

n=numel(t);flipud(char(full(spdiags(repmat(t,n+k-1,1),1-n:0,n+k-1,k))))

2

এপিএল, 50 - 10 = 40 অক্ষর

আমি নিশ্চিত যে এটি আরও কম হতে পারে। 50 টি দুটি ধ্রুবক ছাড়াই প্রোগ্রামটির দৈর্ঘ্য।

{⍵≡⍬:⍬⋄⎕←↑⍵⋄⎕DL 99⋄∇1↓⍵}⊂[0]⊖s⍴⍨n,¯1+⍴s←'brace yourself',' '⍴⍨n←6

ব্যাখ্যা:

                               ' '⍴⍨n←6   call the number 'n' and make n spaces
            s←'brace yourself',           append them to the string and call it 's'
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
                             s⍴⍨n,¯1+⍴s   make a len(s)-1 by n matrix by repeating s 
                        ⊂[0]⊖             reflect the matrix and extract the columns
{                      }                  pass the list of columns to this function
 ⍵≡⍬:⍬⋄                                   return if the list is empty
       ⎕←↑⍵⋄                              print the first column (as a row)
            ⎕DL 99⋄                       wait for 99ms
                   ∇1↓⍵                   recurse with the rest of the columns

টার্মিনালে এনএনজি এপিএল এর জন্য বিকাশ করা হয়েছে ।


2

পাওয়ারশেল - 85 83 বাইট

দেরি হয়ে গেছে, এটি জিততে পারে না :-) তবে আমি ভেবেছিলাম সম্পূর্ণতার জন্য আমি একটি পাওয়ারশেলটি ফেলে দেব:

function m($s,$n){1..$($n+$s.length)|%{-join(" "*$n+$s+" "*$n)[$_-1..$($n+$_-1)]}}



1

গ্রোভি - 82

n=args[1]as int;t=" "*n+args[0]+" "*n;(0..t.size()-n).each{println t[it..it+n-1]}


1

সি #, 112 বাইট

s=>n=>{var r=new string(' ',n-1);s=r+s+r;r="";for(int i=0;i<s.Length-n+1;)r+=s.Substring(i++,n)+"\n";return r;};

অসম্পূর্ণ পদ্ধতি এবং পরীক্ষার কেস সহ সম্পূর্ণ প্রোগ্রাম:

using System;

namespace FakeMarqueeText
{
    class Program
    {
        static void Main(string[] args)
        {
            Func<string,Func<int,string>>f= s=>n=>
            {
                var r=new string(' ',n-1);
                s=r+s+r;
                r="";
                for(int i=0;i<s.Length-n+1;)
                    r+=s.Substring(i++,n)+"\n";

                return r;
            };

            // test cases:
            Console.WriteLine(f("testing")(4));
            Console.WriteLine(f("hello")(2));
            Console.WriteLine(f("foobarz")(3));
            Console.WriteLine(f("Something a bit longer")(10));
            Console.WriteLine(f("small")(15));
            Console.WriteLine(f("aaa")(3));
            Console.WriteLine(f("brace yourself")(6));

        }
    }
}

1

জেলি , 15 বাইট - 10 = 5 ( প্রতিযোগী নয় ?)

ḶṚ⁶ẋ;€⁹ZṄœS$€ṛ“

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

প্রতিটি লাইনের মাঝে এক সেকেন্ডের জন্য ঘুমায়। এটি যদি গ্রহণযোগ্য হয় তবে একটি অনুগ্রহযোগ্য নতুন লাইন প্রিন্ট করে।

ইয়ে জেলি চারকোলকে মারধর করে


1

PHP4.1, 85-10 = 75 বাইট

হ্যাঁ, এটি একটি খুব পুরানো সংস্করণ, তবে এটির আমার প্রয়োজনীয় কার্যকারিতা রয়েছে।
আপনি এখনও পিএইচপি-র সাম্প্রতিক সংস্করণগুলিতে এটি চালাতে পারেন, তবে নীচের কোডটি চালানোর আগে আপনাকে নিজেই ভেরিয়েবলগুলি সেট করতে হবে।

এটি আমাকে আমার কোডের আকার হ্রাস করতে সাহায্য করে!

এটি সত্যই মৌলিক:

<?for($s=str_repeat(' ',$n).$s;$i++<strlen($s)+$n;sleep(1))echo substr($s,$i,$n),'
';

আমি এই কারণে বোনাসের জন্য দৌড়েছি, ওপিকে উদ্ধৃত করে:

যদি আপনার প্রোগ্রামটি স্বতন্ত্র থাকে (যেমন চালানো আসলে লাইনগুলি মুদ্রণ করে) (ইনপুটটি হার্ড-কোডড তবে পরিবর্তন করা সহজ) এবং আউটপুটের প্রতিটি লাইনের মধ্যে কিছুটা ঘুমিয়ে গেলে আপনি একটি -10 বোনাস পান।

আপনি অবশ্যই স্পষ্ট দেখতে পাচ্ছেন, এটি একটি ঘুম আছে।

এটি ধরে নেওয়া হয় যে আপনি register_globalsডিফল্টরূপে সক্ষম করেছেন যা এই সংস্করণের জন্য ডিফল্ট সেটিংস ছিল।


আপনি সহজেই আপনার ব্রাউজারে পরীক্ষা করতে পারেন যত্সামান্য কিছু পরিবর্তনসমুহ:

//detects if it is running in js or php
//true for js, false for php
if('\0'=="\0")
{
	function strlen($s){
		return $s.length;
	}
	
	function str_repeat($s,$n){
		return Array($n+1).join($s);
	}
	
	function substr($s,$n,$m){
		return $s.substr($n,$m);
	}
	
	function printf($s){
		document.write($s);
	}
	
	function concat($a,$b){
		return $a+$b;
	}
}
else
{
	function concat($a,$b){
		return $a.$b;
	}
}

//sets the variables, not required for PHP if you pass the values by GET or POST
$i=0;
$s='example';
$n=6;



for($s=concat(str_repeat('-',$n),$s);$i++<strlen($s)+$n;)printf(concat(substr($s,$i,$n),'<br>'));
*{font-family:monospace}

উপরের কোডটি বহুবিশেষ এবং আপনি আপনার ব্রাউজারে বা পিএইচপি ইন্টারপ্রেটারে চালাতে পারেন। আমি কি এর জন্য কোনও পুরস্কার পাব না? একটি কুকি, সম্ভবত?

পরিবর্তনের তালিকা:

  • sleep(1)এই পরীক্ষার মধ্যে সরানো হয়েছে
  • ফাংশনের 2 টি সংস্করণ তৈরি করা হয়েছে concat
    লক্ষ্যটি হল স্ট্রিংগুলিতে পিএইচপি এবং জেএসের পার্থক্যগুলি কাটিয়ে ওঠা।
  • কোনও স্থানের পরিবর্তে স্থানটি -পূরণ করার জন্য একটি ব্যবহার করা হয়
  • পরিবর্তে echo, printfপরিবর্তে ব্যবহার হয় (পিএইচপি সীমাবদ্ধতা)
  • পরিবর্তে বা একটি 'বাস্তব' নিউলাইন, <br>পরিবর্তে ব্যবহার করা হয়


1

এপিএল (ডায়ালগ) , 17 বাইট

⌽⍉↑(⎕,⍨' '/⍨⊢)¨⍳⎕

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

(প্রোগ্রামটি ধরে নিয়েছে ⎕IO←0যা অনেকগুলি মেশিনে ডিফল্ট)

ব্যাখ্যা

⍳⎕               Create a range 0 .. input-1
¨                For each element in this range do:
 ' '/⍨⊢           A space duplicated right argument (which is the element in  the range) times
 ⎕,⍨              Concatenated with the input string to its right
⌽⍉               Transpose and reflect horizontally
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.