একটি সংখ্যা দিয়ে একটি স্ট্রিং গুণ!


34

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

তোমার কাজ:

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

ইনপুট:

একটি স্ট্রিং যা সম্পূর্ণরূপে মুদ্রণযোগ্য ASCII অক্ষর এবং নিউলাইন এবং একটি পূর্ণসংখ্যা (সম্ভাব্য নেতিবাচক) সমন্বিত।

আউটপুট:

স্ট্রিংটি পূর্ণসংখ্য দ্বারা গুণিত হয়।

উদাহরণ:

Hello World!, 3            --> HHHeeellllllooo   WWWooorrrlllddd!!!
foo, 12                    --> ffffffffffffoooooooooooooooooooooooo
String, -3                 --> gggnnniiirrrtttSSS
This is a fun challenge, 0 --> 
Hello
World!, 2                  --> HHeelllloo

                               WWoorrlldd!!

স্কোরিং:

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


4
আমরা কী ধরে নিতে পারি যে স্ট্রিংটি কেবলমাত্র ASCII- এ মুদ্রণযোগ্য, প্লাস নিউলাইনস?
mbomb007

আমরা স্ট্রিংগুলির একটি তালিকা আউটপুট করতে পারি?
সম্পূর্ণরূপে

রেটিনার আংশিক সমাধান। শুধুমাত্র পূর্ণসংখ্যার ধনাত্মক মানগুলির জন্য কাজ করে। কেউ চাইলে আমি সম্ভবত এটি শেষ করার জন্য সময় দেব না। tio.run/##K0otycxL/P8/…
mbomb007

@ mbomb007, হ্যাঁ, এটি সম্পর্কে এত দিন নেওয়ার জন্য দুঃখিত।
গ্রিফন - মনিকা পুনরায়

@ টোটালিহুমান, না আপনি নাও পারেন।
গ্রিফন - মনিকা

উত্তর:


31

জেলি , 6 5 4 বাইট

²Ɠxm

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

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

²Ɠxm  Main link. Argument: n (integer)

²     Yield n².
 Ɠ    Read and eval one line of input. This yields a string s.
  x   Repeat the characters of s in-place, each one n² times.
   m  Takes each |n|-th character of the result, starting with the first if n > 0, 
      the last if n < 0.

1
ঠিক আছে, এখন আমি সত্যিই মুগ্ধ। আমি ক্ষুদ্রায়ণে এই বিশেষ বিস্ময়ের ব্যাখ্যাটি পছন্দ করব।
গ্রিফোন - মনিকা 21

অবশ্যই। যত তাড়াতাড়ি আমি একটি পরীক্ষা স্যুট তৈরি এবং গল্ফিং সম্পন্ন করা হয়।
ডেনিস

4
ঠিক আছে, আপনি যদি এটিকে আরও ছোট করে তুলতে পারেন তবে আমি> 10 বাইট নিবে এমন একটি প্রশ্ন করার চেষ্টা ছেড়ে যাচ্ছি।
গ্রিফন - মনিকা 21

13
ঠিক আছে, এটা। আমি জেলি শিখছি। আমিও যাদু করতে সক্ষম হতে চাই।
গ্রিফন - মনিকা 21

2
আমরা সবাই জানি জেলি চেইনগুলি নিয়ে আলোচনা কীভাবে
গণ্ডগোলের অবসান ঘটাচ্ছে

9

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

বাক্য গঠন সিনট্যাক্সে ইনপুট নেয় (s)(n)

s=>n=>[...s].reduce((s,c)=>n<0?c.repeat(-n)+s:s+c.repeat(n),'')

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


3
+1 এর জন্য reduce!
নীল

9

পাইথন 3 , 44 বাইট

f=lambda s,n:s and s[0]*n+f(s[1:],n)+s[0]*-n

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


বেস কেসটি মনে হয় শেষ চরিত্রটিকে উপেক্ষা করবে।
xnor

আমি কেন এটি করেছি তা পুরোপুরি নিশ্চিত নয় ... ধন্যবাদ!
ডেনিস

1
41 বাইট । তবে আইডিডি যদি কোনও ফাংশন কলকে f(n,*s)বৈধ বলে মনে করা হয়
ফিলিপ নারদী বাটিস্তা


6

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

S²Ä×J²0‹iR

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

S          # Split the string into characters
 ²Ä×       # Repeat each character abs(integer) times
    J      # Join into a string
     ²0‹i  # If the integer is less than 0...
         R #   Reverse the string

টিএফডাব্লু আপনি 30 মিনিট ব্যয় করেছেন যা @ রিলে যা ²0‹iসর্বোত্তম রুট নয় এবং আক্ষরিক 0 বিকল্পের সাথে প্রমাণ করার জন্য এমন কিছু নিয়ে আসতে চেষ্টা করছে ।
ম্যাজিক অক্টোপাস আরন 21

@ ম্যাজিক অ্যাক্টোপাস ইউরান আমি ²0‹iআগের মতো কিছু ব্যবহার করেছি এবং আমি সবসময় মনে করি আরও ভাল কিছু হতে হবে।
রাইলে

আমার মনে হয় আমি এখন প্রায় 10 বার একটি বিকল্প সন্ধান করার চেষ্টা করেছি ... আমার জীবনের সার্বিক 3 ঘন্টা নষ্ট করছি ._। Ä.D)øJ¹0‹iRআমি আপনাকে অনুলিপি না করেই সবচেয়ে ভাল করতে পারি, আমি মনে করি আপনারটি অনুকূলিত।
ম্যাজিক অক্টোপাস আরন 21

আপনি যদি যত্নশীল হন, এমিগিনা è এখানে ব্যবহার করেছেন , যদিও আমি এই দৃশ্যে এটি প্রয়োগ করার কোনও উপায় খুঁজে পাই না। যদি তা হয় তবে সর্বাধিক 1 বাইট সংরক্ষণ করতে পারে।
ম্যাজিক অক্টোপাস আরন 21

SÂΛ@²Ä×J, Î0 টি চাপতে ব্যবহার করে ইনপুট কাজ করে যদি আপনি অর্ডার পরিবর্তন করেন। 1 বাইট বাঁচায়! (এছাড়াও যদি প্রতিস্থাপন করে তবে এটি বন্ধ করার দরকার নেই)
কলসওয়ারাস

5

এমএটিএল , 9 বাইট

y|Y"w0<?P

ইনপুটগুলি হ'ল: সংখ্যা, তারপরে স্ট্রিং।

নতুন লাইন দিয়ে স্ট্রিংস গৃহস্থালির কাজ ব্যবহার ইনপুট হয় 10নিম্নরূপ: ['first line' 10 'second line']

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

ব্যাখ্যা

ইনপুট -3এবং বিবেচনা করুন 'String'

y      % Implicitly take two inputs. Duplicate from below
       % STACK: -3, 'String', -3
|      % Absolute value
       % STACK: -3, 'String', 3
Y"     % Run-length decoding
       % STACK: -3, 'SSStttrrriiinnnggg'
w      % Swap
       % STACK: 'SSStttrrriiinnnggg', -3
0<     % Less than 0?
       % STACK: 'SSStttrrriiinnnggg', 1
?      % If so
  P    %   Flip
       %   STACK: 'gggnnniiirrrtttSSS'
       % End (implicit). Display (implicit)

5

হাস্কেল , 41 36 বাইট

f n|n<0=reverse.f(-n)|1<3=(<*[1..n])

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

ব্যবহারের উদাহরণ: f (-3) "abc"ফলন "cccbbbaaa"

সম্পাদনা করুন: -৫ বাইট xnor ধন্যবাদ!


1
আছে (<*[1..n])জন্য ((<$[1..n])=<<)
xnor

@ এক্সনোর ধন্যবাদ! এটা জানা ভাল.
লাইকনি

5

ভি , 29, 23, 18 , 17 বাইট

æ_ñÀuñÓ./&ò
ÀäëÍî

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

Hexdump:

00000000: e65f f1c0 75f1 d32e 2f26 f20a c0e4 ebcd  ._..u.../&......
00000010: ee                                       .

N বাইট সংরক্ষণের জন্য @ nmjcman101 ধন্যবাদ, যা আমাকে আরও ৫ টি বাঁচাতে উত্সাহিত করেছে!

আসল সংশোধনটি বেশ ভয়ানক ছিল, তবে এখন আমি এই উত্তরটির জন্য সত্যিই গর্বিত কারণ এটি আশ্চর্যজনকভাবে ভালভাবে নেতিবাচক সংখ্যাগুলি পরিচালনা করে। (ভি এর পাশে সংখ্যাসূচক সমর্থন নেই এবং নেতিবাচক সংখ্যার জন্য সমর্থন নেই)

ব্যাখ্যা:

æ_          " Reverse the input
  ñ  ñ      " In a macro:
   À        "   Run the arg input. If it's positive it'll give a count. If it's negative
            "   running the '-' will cause V to go up a line which will fail since we're
            "   on the first line, which will break out of this macro
    u       "   (if arg is positive) Undo the last command (un-reverse the line)
      Ó./&ò " Put every character on it's own line

এই মুহুর্তে, বাফারটি দেখতে এমন দেখাচ্ছে:

H
e
l
l
o

w
o
r
l
d
!
<cursor>

অনুবর্তনযোগ্য নতুন লাইনটি না করা এবং এটির মধ্যে কার্সারটি রয়েছে এটি গুরুত্বপূর্ণ।

À           " Run arg again. If it's negative, we will move up a line, and then give the 
            " absolute value of the count. If it's positive (or 0) it'll just give the
            " count directly (staying on the last line)
 ä          " Duplicate... (count times)
  ë         "   This column. 
   Íî       " Remove all newlines.

ইয়া জন্য কয়েকটি বাইট অনলাইনে চেষ্টা করে দেখুন! আমি সর্বদা ঘৃণা করি "নেতিবাচক সংখ্যার অর্থ অন্য কিছু!" প্রান্ত কেস। এটি এমন একটি ক্ষেত্রে যেখানে আপনার 0বিশেষ ভি'র কেসগুলি দুর্দান্ত কাজে আসে।
nmjcman101

বিশেষ নেতিবাচক সংখ্যা সম্পর্কে দুঃখিত। যাইহোক, প্রচুর উত্তর সেগুলি তাদের মূল উত্তরের সাথে অন্তর্ভুক্ত করতে সক্ষম হয়েছিল। যদিও এই ভি একের উপর চিত্তাকর্ষক।
গ্রিফোন - মনিকা

@ nmjcman101 ওহ বাহ, এতো সুস্পষ্ট, আমি জানি না আমি কীভাবে এটি ভাবিনি। ধন্যবাদ!
ডিজেএমসিএমহেম

@ গ্রিফন ওহ আমি জানি চ্যালেঞ্জটি ঠিক আছে, আমি নিজের ভাষায় এটির পক্ষে ভাল হওয়ার অনুভূতিতে এত খারাপ হওয়ার জন্য কেবল অপছন্দ করি। : পি
ডিজেএমসিহেম

5

আর, 83 78 76 বাইট

function(s,i)cat('if'(i<0,rev,`(`)(rep(el(strsplit(s,'')),e=abs(i))),sep='')

বেনামে ফাংশন।

ফ্রেডেরিক 3 বাইট সংরক্ষণ করেছেন, জিউসেপ্পে 2 4 সংরক্ষণ করেছেন ।

ব্যাখ্যা:

     el(strsplit(s,''))                      # split string into list characters
 rep(                  ,e=abs(i)))           # repeat each character abs(i) times


    'if'(i<0,rev,   ){...}                 # if i>0, reverse character list
                 `(`                       # otherwise leave it alone: `(` is the identity function
cat(                      ,sep='')         # print the result

পরীক্ষা:

> f('Hello World!', 3 )
HHHeeellllllooo   WWWooorrrlllddd!!!
> f('foo', 12)
ffffffffffffoooooooooooooooooooooooo
> f('String', -3)
gggnnniiirrrtttSSS
> f('This is a fun challenge', 0)
> f('Hello
+ World!', 2)
HHeelllloo

WWoorrlldd!!

2
সাবাশ ! আপনি কিছু বাইট লিখে rep(foo,,,3)বা rep(foo,e=3)(একই দৈর্ঘ্য) দ্বারা সংরক্ষণ করতে পারেন ;-)
ফ্রেডেরিক

@ ফ্রেডেরিক আপনি আমাকে এতে মারধর করেছেন, আমিও একই কথা বলছিলাম!
জিউসেপ

1
হ্যাঁ, সমস্যা নেই! মূলত, আমি ধনুর্বন্ধনী পরিত্রাণ পেতে চেয়েছিলেন তাই আমি পরিত্রাণ পেতে প্রয়োজন a=। সুতরাং, আমি aবিপরীত ফাংশনের আর্গুমেন্ট হিসাবে মানটি ব্যবহার করি যদি i<0শর্তসাপেক্ষে ফাংশনটি ফিরিয়ে দেওয়া হয় (যার কারণে আমার ব্যাককোটগুলি প্রয়োজন)। তবে i>=0মামলার জন্য আমার পরিচয় ফাংশনটিও প্রয়োগ করা দরকার , তাই আমি ব্যবহার করেছি (যা যথেষ্ট পরিমাণে কাছে। (আসলে একটি ফাংশন। আর অদ্ভুত।
জিউসেপ

1
BTW, বন্ধ জন্য R ডক্স বলে যে (শব্দার্থগতভাবে পরিচয় সমতূল্যfunction(x)x
: Giuseppe




4

ব্রেন-ফ্লাক (ব্রেনহ্যাক) , 154 152 বাইট

([(({})(<()>))]<>)<>{({}()<([{}]()<([{}])>)<>({}<>)<>>)<>}{}<>{}<>({}<([][()]){{}({<({}<(({}<>)<>)>())>[()]}<{}{}>)([][()])}{}{}<>>){{}{({}<>)<>}(<>)}{}

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

ঠিক এখানে ডিজেএমসিএমহেমকে কিছু প্রতিযোগিতা দেওয়ার জন্য। ;)

ব্যাখ্যা

এখানে ডিজেএমসিএমহেমের ব্যাখ্যাটির পরিবর্তিত সংস্করণ

#Compute the sign and negative absolute value 
([(({})<(())>)]<>)<>{({}()<([{}]()<([{}])>)<>({}<>)<>>)<>}{}<>{}<>

#Keep track of the sign
({}<

    #For each char in the input string:
    ([][()])
    {
        {}

        #Push n copies to the alternate stack
        ({<({}<(({}<>)<>)>())>[()]}<{}{}>)

        #Endwhile
        ([][()])
    }{}{}<>

#Push the sign back on
>)

#If so...
{{}

    #Reverse the whole stack
    {({}<>)<>}

    #And toggle over, ending the loop
    (<>)
}

#Pop the counter off
{}

4

জে , 19 15 13 বাইট

(#~|)A.~0-@>]

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

ব্যাখ্যা

        0-@>]      NB. first or last index depending on sign of right arg
     A.~           NB. get first or last Anagram of left arg
(#~|)              NB. copy left arg, absolute-value-of-right-arg times

2
(#~|)A.~0-@>]13 বাইটের জন্য
মাইল

খুব সুন্দর @ মাইলস!
টিক্কানজ

সমস্যা নেই. ক্রিয়াটি শুরু করতে আপনাকে ব্যবহৃত প্রথম বন্ধনীগুলিও গণনা করতে হবে না।
মাইল 23

1
এছাড়াও 13 বাইট:#~ ::(|.@#~|)
ফ্রাউনফ্রাগ

3

ডায়ালগ এপিএল, 15 বাইট

{⌽⍣(⍵<0)⊢⍺/⍨|⍵}

একটি বাম আর্গুমেন্ট হিসাবে স্ট্রিং, ডান আর্গুমেন্ট হিসাবে সংখ্যা।

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

কিভাবে?

⍺/⍨ - স্ট্রিং পুনরাবৃত্তি

|⍵ - অ্যাবস (সংখ্যা) বার

⌽⍣ - যদি বিপরীত

(⍵<0) - সংখ্যাটি 0 এর নীচে


উম্মু, টিআইওর মতো কাজ করা ভাল লাগবে?
গ্রিফোন - মনিকা

@Gryphon এবং এখানে বাইট রয়েছে ...
ঊরীয়েল

হ্যাঁ, আমি এটি বুঝতে পেরেছিলাম এবং আপনাকে জানাতে আমার মন্তব্য লিখছিলাম।
গ্রিফোন - মনিকা

3

ম্যাটল্যাব, 37 বাইট

@(s,n)flip(repelem(s,abs(n)),(n<0)+1)

এটি ইনপুট s: স্ট্রিং এবং n: সংখ্যা সহ অজ্ঞাতনীয় ফাংশন সংজ্ঞায়িত করে ।

উদাহরণ রান:

>> @(s,n)flip(repelem(s,abs(n)),(n<0)+1)
ans = 
    @(s,n)flip(repelem(s,abs(n)),(n<0)+1)

>> f = ans;

>> f('String', 3)
ans =
SSStttrrriiinnnggg

>> f('String', -3)
ans =
gggnnniiirrrtttSSS

>> f('String', 0)
ans =
   Empty matrix: 1-by-0

Dimen +1 লিখেছি এমন গণ্ডগোলের চেয়ে কোন মাত্রার সাথে ফ্লপ করতে হবে তা বেছে নেওয়া ভাল। এবং আমি সর্বদা repelemবিদ্যমান ভুলে ।
স্টিভি গ্রিফিন

@ স্টিভিগ্রিফিন ওয়েল, আপনি এটি আপনার উত্তরটিতেও অন্তর্ভুক্ত করতে পারেন :-) (+1 ইতিমধ্যে)। আমার মনে হয় repelemএখনকার
লুইস মেন্ডো

3

ব্রেন-ফ্লাক (হাস্কেল) , 202 192 বাইট

(({})<(([({})]<>)){({}()<([{}])<>({}<>)<>>)<>}{}([{}]<><{}>)([][()]){{}({<({}<(({}<>)<>)>[()])>()}<{}{}>)([][()])}{}{}<>>)([({}<(())>)](<>)){({}())<>}{}{((<{}>))<>{}}{}<>{}{{}{({}<>)<>}(<>)}{}

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

এটি সম্ভবত এটি সবচেয়ে খারাপ ভাষা হতে পারে তবে এটি হয়ে গেছে। হাস্কেল ইন্টারপ্রেটার সরবরাহ করার জন্য @ হুইটউইজার্ডকে ধন্যবাদ, যা মিশ্র ইনপুট ফর্ম্যাটগুলিকে অনুমতি দেয়। এটি ছাড়াই এটি প্রায় 150 বাইট দীর্ঘ হবে।

ব্যাখ্যা:

#Keep track of the first input (n)
(({})<

    #Push abs(n) (thanks WheatWizard!)
    (([({})]<>)){({}()<([{}])<>({}<>)<>>)<>}{}([{}]<><{}>)

    #For each char in the input string:
    ([][()])
    {
        {}

        #Push n copies to the alternate stack
        ({<({}<(({}<>)<>)>[()])>()}<{}{}>)

        #Endwhile
        ([][()])
    }{}{}<>

#Push the original n back on
>)

#Push n >= 0
([({}<(())>)](<>)){({}())<>}{}{((<{}>))<>{}}{}<>{}

#If so...
{{}

    #Reverse the whole stack
    {({}<>)<>}

    #And toggle over, ending the loop
    (<>)
}

#Pop the counter off
{}

2 বাইট সংরক্ষণ করতে আপনি আমার 52 বাইট অ্যাবস ব্যবহার করতে পারেন, আপনি যে 50 বাইট-ববগুলি দিয়েছিলেন তা 6 বাইট সংরক্ষণ করার পরিবর্তে হ্রাস করার পরিবর্তে এবং বর্ধিত ব্যবহার করতে পারেন।
গম উইজার্ড


3

জাভা (ওপেনজেডিকে 8) , 99 98 89 87 85 বাইট

s->n->{for(int i=s.length*(n<0?n:-n),r=n<0?0:~i;i++<0;)System.out.print(s[(i+r)/n]);}

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

  • -2 বাইটস @ এক্সান্দারহালকে ধন্যবাদ
  • -2 বাইটস @ নেভায়েকে ধন্যবাদ

যে কাজগুলি কাজ করে না (দীর্ঘ পথ ধরে): তার আগে স্ট্রিংটি বিপরীত করুন, একটি স্ট্রিম ব্যবহার করুন
অলিভিয়ের গ্রাগোয়ার

1
2 বাইট এর সাহায্যে সংরক্ষণ করুনs[(n<0?-l-~i:i)/n]
এক্সান্দ্রহাল

@ এক্সান্দ্রহাল ধন্যবাদ! এতক্ষণ আমি তার সন্ধান করছিলাম আমার চোখের রক্ত ​​ঝরছে। আমি জানতাম এটি সম্ভব ছিল, এটি বাস্তবায়ন করার সময় আমি সমস্ত কিছু গণ্ডগোল করেছি।
অলিভিয়ার গ্রাগোয়ার

1
@ ব্যবহারকারী 902383 হ্যাঁ, এটি বাধ্যতামূলক । যদি সেগুলি alচ্ছিক হয় তবে প্রচুর জিনিস অপঠনযোগ্য হবে। এছাড়াও, আমার ফাংশনটি "একক বিবৃতি" নয়, একটি লুপ, যা বেশ কয়েকটি বিবৃতি ধারণ করে।
অলিভিয়ার

1
iশর্তে বৃদ্ধি করে আপনি 1 বাইট সংরক্ষণ করতে পারেন s->n->{for(int l=s.length*(n<0?-n:n),i=0;i++<l;)System.out.print(s[(n<0?i-l:i-1)/n]);}। এর পরিবর্তে -l থেকে 0 পর্যন্ত পুনরাবৃত্তি করে আরেকটি বাইট সংরক্ষণ করা যায় s->n->{for(int i=s.length*(n<0?n:-n),r=n<0?0:~i;i++<0;)System.out.print(s[(i+r)/n]);}
নেভায়ে


2

রুবি , 59 +1 = 60 বাইট

-nপতাকা ব্যবহার করে ।

n=eval$_
a=$<.read
a.reverse!if n<0
a.chars{|i|$><<i*n.abs}

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


1
eval$_$_.to_i1 বাইটের চেয়ে কম String#charsব্লককেও একইভাবে গ্রহণ String#each_charকরতে পারে। সবশেষে প্রতিটি অক্ষর প্রক্রিয়া করার আগে ইনপুটটি বিপরীত করুন যাতে আপনি এটির পরিবর্তে সরাসরি মুদ্রণ করতে পারেন (এতে আপনার পতাকাটি স্যুইচ করে -n)। এর সবগুলি মিলিয়ে 55 + 1 = 56 বাইট হয়ে যায়।
মূল্য

2

কাঠকয়লা , 16 বাইট

Fθ¿‹η0F±Iη←ιFIηι

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ব্যাখ্যা:

Fθ              For each character in the input string
  ¿‹η0          If the input number is less than zero
      F±Iη      Repeat the negation of the input number times
          ←ι    Print the character leftwards (i.e. reversed)
      FIη       Otherwise repeat the input number times
         ι      Print the character


2

জাপট , 12 বাইট

®pVaìr!+sVg

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

ব্যাখ্যা

স্ট্রিং Uএবং পূর্ণসংখ্যার অন্তর্নিহিত ইনপুট V

®pVaÃ

মানচিত্র ( ®) প্রতিটি অক্ষরের U(অন্তর্নিহিত) নিজের কাছে পুনরায় ( p) abs(V)( Va) বার বার করা হয়েছে।

¬r

স্ট্রিংটিকে অক্ষরের অ্যারেতে পরিণত করুন ( ¬) এবং এর rসাথে ( ) হ্রাস করুন ...

!+sVg

"!+".slice(sign(V))- এই উভয় সঙ্গে কমে আসে +a + b, অথবা !+b + a
পিছনে-হ্রাস ধারণার জন্য @ আর্নল্ডকে ধন্যবাদ!


আমি মনে করি £gY*Vg)pVaএকটি সংক্ষিপ্ত সমাধানের দিকে নিয়ে যাওয়া উচিত তবে আমার মস্তিস্ক ছুটির দিনে বন্ধ হয়ে গেছে তাই আমি এটি বেশ বের করতে পারি না। যদিও আপনি এটি দিয়ে কিছু করতে সক্ষম হতে পারেন।
শেগি


2

সি 89 বাইট

main(int c,char**v){for(;*v[1];v[1]++)for(c=atoi(v[2]+(*v[2]=='-'));c--;)putchar(*v[1]);}

আমি বেন পারলিনের সংস্করণটি দেখেছি এবং ভাবছিলাম যে আপনি যদি আরও ছোট না হতে পারেন এবং একটি সম্পূর্ণ প্রোগ্রামও রাখতে পারেন না; অবশ্যই, atoi()এবং putchar()বাইটস হিসাবে এটি ব্যয়বহুল না? আমি ঠিক বলেছি!


2

Pyth, 13 11 বাইট

*sm*.aQdz._

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

-২ বাইটস @ জ্যাকোব্ল্যা ধন্যবাদ

ব্যাখ্যা

*sm*.aQdz._   
  m     z     # map onto the input string (lambda var: d)
   *.aQd      # repeat the char d as often as the absolute value of the input number 
 s            # sum the list of strings into a single string
*        ._Q   # Multiply with the sign of the implicit input value: reverse for negative Q 

পুরানো পদ্ধতির, 13 বাইট

_W<Q0sm*.aQdz

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


আপনি এই বিপরীত যুক্তি দিয়ে দুটি বাইট সংরক্ষণ করতে পারেন
জ্যাকোব্লা

2

পাইথন 3 , 68 বাইট

h=lambda s,n:h(s[::-1],-n)if n<0 else s[0]*n+h(s[1:],n)if s else s*n

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


হ্যালো, এবং সাইটে আপনাকে স্বাগতম! দুর্ভাগ্যক্রমে, এই উত্তরটি এখনই অবৈধ, কারণ এটি নেতিবাচক সংখ্যাগুলি সমর্থন করে না । চ্যালেঞ্জটি বলে:If the integer is negative, we use its absolute value in the first step, and then reverse the string.
ডিজেএমসিএমহেম

এটি ঠিক করার জন্য ধন্যবাদ! বিটিডাব্লু, আপনি প্রথম বন্ধনী পরে স্পেসগুলি সরিয়ে দুটি বাইট নিতে পারেন)
ডিজেএমসিএমহেম

সম্পাদনা, অবদানের জন্য ধন্যবাদ
কাভি

n<0 else=>n<0else
জাকারি

1

কিউবিআইসি , 32 বাইট

g=sgn(c)[_l;||[:*g|?_sA,b*g,1|';

ব্যাখ্যা

            Takes inputs A$ ('Hello'), and c (-3) from the cmd line
g=sgn(c)    Save the sign of c          -1
[_l;||      FOR each char in A$
[:*g|       FOR the number of repetitions wanted    (ie: -3 * -1)
            Note that : reads a number from the cmd line, and c is the first 
            available variable to save it in after a and b got used as FOR counters.
            Also note that a negative value times the sign becomes positive.
?_s         PRINT a substring
  A         of A$
 ,b*g       startng at char n, where n is the first FOR loop counter times the sign
                That means that when c is negative, so is this. A negative starting index
                on Substring instructs QBIC to take from the right.
 ,1|        taking 1 char.
';          This bit injects a literal ; in the output QBasic, to suppress newlines om PRINT

1

গণিত, 89 বাইট

(T=Table;t=""<>T[s[[i]]~T~Abs@#2,{i,Length[s=Characters@#]}];If[#2>0,t,StringReverse@t])&


ইনপুট

["হ্যালো ওয়ার্ল্ড!", 3]


1

ব্রেনল্ফ , 22 বাইট

1-v{R.[v.R]v}R[v>R]v&@

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

এহ, খারাপ না।

একটি পূর্ণসংখ্যা এবং অক্ষরের অ্যারে হিসাবে ইনপুট নেয়।

বিকল্পভাবে:

ব্রেনল্ফ , 31 বাইট

l1->[M]1-v&,{R.[v.R]v}R[v>R]v&@

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

একটি পূর্ণসংখ্যা এবং একটি স্ট্রিং হিসাবে ইনপুট নেয়


1

সি, 109 বাইট

char *f(int n, char *s){char *o=calloc(n,strlen(s)+1),*t=o;while(*s){for(int i=n;i--;)*t++=*s;s++;}return o;}

কোনও ক্রিয়াকলাপের ঘোষণার সাথে শুরু করে যা কোনও ইন্টি এবং স্ট্রিং নেয় এবং একটি স্ট্রিং তৈরি করে (এটি বোঝা যাচ্ছে যে স্মৃতিটি পূর্বনির্ধারিত নয় এবং তৈরি করা আবশ্যক) মনে হয় যে ক্লিয়ারার হওয়ার চেষ্টা করার চেয়ে আমি যে চেষ্টা করেছি তার চেয়ে সোজা-সামনের দিকে এগিয়ে যাওয়া পদ্ধতির চেয়ে কম ।

char *f(int n, char *s){
  char *o=calloc(n, strlen(s)+1),
    *t=o;

  while (*s) {
    for(int i=n; i--; )
      *t++=*s;
    s++;
  }

 return o;

}


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