জাভাস্ক্রিপ্ট বাম-প্যাড গল্ফ


27

ভূমিকা

প্রাক্কালে বাঁ-প্যাড npm প্যাকেজ বিপর্যয় , এর বাম-প্যাড বাস্তবায়নের জন্য একটি কোড গলফ ছেড়ে দিও।

বাঁ-প্যাড ফাংশন, আকারে ডিফল্ট মান 2 আর্গুমেন্ট এবং 1 টি অতিরিক্ত যুক্তি নিয়ে গঠিত স্ট্রিং , দৈর্ঘ্য , ( padchar )। প্যাডচার দেওয়া না হলে এটি একটি স্থানের অক্ষরে মানক করা হয় । দুটি যুক্তি সহ একটি উদাহরণ নেওয়া যাক:

left_pad("abc", 6)

প্রথমত, আমরা স্ট্রিংয়ের দৈর্ঘ্য পর্যবেক্ষণ করি, যা 3 । এটির পরে, পুরো স্ট্রিংয়ের দৈর্ঘ্য ফাংশনে প্রদত্ত দৈর্ঘ্যে না পৌঁছানো পর্যন্ত আমাদের এই স্ট্রিংটি বামে প্যাড করতে হবে। এই ক্ষেত্রে 6 । যেহেতু প্যাচার দেওয়া হয়নি তাই আমাদের স্পেস দিয়ে প্যাড করতে হবে:

   abc

এটি 3 স্পেস এবং প্রারম্ভিক স্ট্রিং সহ একটি স্ট্রিং, যার দৈর্ঘ্য 6 দিয়ে স্ট্রিং হয় pad এখানে প্যাচার দেওয়া একটি উদাহরণ রয়েছে:

left_pad("abc", 6, "-")

আমরা কেবল উপরের উদাহরণ হিসাবে একই কাজ, কিন্তু প্যাচচার সঙ্গে ফাঁকা স্থান প্রতিস্থাপন। এই ক্ষেত্রে হাইফেন:

---abc

কাজটি

প্রদত্ত স্ট্রিং , দৈর্ঘ্য , এবং হয়তো অতিরিক্ত যুক্তি padchar , আউটপুট বাঁ-প্যাডেড পংক্তি। আপনি ধরে নিতে পারেন দৈর্ঘ্যের সংখ্যাটি স্ট্রিংয়ের দৈর্ঘ্যের চেয়ে সমান বা বড়। প্যাডচারে সর্বদা 1 টি চরিত্র থাকে।

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

left_pad("string", length, ("padchar")) === "left-padded string"

left_pad("foo", 5) === "  foo"
left_pad("foobar", 6) === "foobar"
left_pad("1", 2, "0") === "01"
left_pad("1", 2, "-") === "-1"

এটি , তাই বাইটসের স্বল্পতম সংখ্যার সাথে জমা দেওয়া!


13
@ m0sa এখনও কয়েকটি সমস্যা আছে। জাভাস্ক্রিপ্টে চ্যালেঞ্জকে সীমাবদ্ধ করা দৃ strongly়ভাবে নিরুৎসাহিত করা হয়েছে - অন্যান্য ভাষা এতে অংশ নিতে পারে না এমন কোনও কারণ নেই। বৈশিষ্টটিতে কোনও লিঙ্ক অনুসরণ করার প্রয়োজন ছাড়াই কাঙ্ক্ষিত আচরণ এবং সম্ভাব্য অনুমোদিত ইনপুটগুলির পরিসীমা বর্ণনা করা উচিত। এটি তৃতীয় প্যারামিটার কীভাবে পরিচালনা করা হচ্ছে তা স্পষ্ট নয়।
xnor

8
আমি নিশ্চিত যে একটি জাভাস্ক্রিপ্ট-প্রাসঙ্গিক রেফারেন্স অনুপ্রেরণার জন্য তৈরি করা যেতে পারে, "তাই অন্য কোনও ভাষা খেলতে দেওয়া হয় না" বলে না রেখেই। আপনি যদি বিশেষভাবে জাভাস্ক্রিপ্টের সেরা এন্ট্রিগুলি দেখতে আগ্রহী হন তবে আপনি অন্য ভাষার জন্য চ্যালেঞ্জটি উন্মুক্ত রেখেও এর জন্য অনুদানের প্রস্তাব দিতে পারেন।
ট্রিকোপ্লাক্স

6
হয় একক ভাষার প্রশ্ন নিষিদ্ধ বা সেগুলি হয় না। যদি তাদের নিষেধ করা হয় তবে এটি বন্ধ করুন। যদি তাদের অনুমতি দেওয়া হয়, তবে ওপিকে তাদের পছন্দ মতো প্রশ্নটি সীমাবদ্ধ রাখুন।
Sklivvz

10
@ স্ক্লাইভজ (এবং এম0 এসএ) এমন বিরল ঘটনা রয়েছে যেখানে ভাষা-নির্দিষ্ট চ্যালেঞ্জগুলি বোধগম্য হয়, বিশেষত যদি চ্যালেঞ্জটির কোনও ভাষার কিছু অনন্য বৈশিষ্ট্য বোধ করা প্রয়োজন বা এমনকি প্রথম স্থানে একটি চ্যালেঞ্জ হতে পারে। এগুলি অনুমোদিত হওয়ার মূল কারণ এবং কেন আমি এগুলি সম্পূর্ণরূপে অস্বীকার করার বিরোধিতা করব। তাই বলা হয়, যে কোনো চ্যালেঞ্জ জন্য করে কোন ভাষায় জানার, সেখানে এক ভাষা থেকে এটি সীমিত পেছনে তেমন কোন যুক্তি নেই। অন্যথায়, আমাদের "জাভাস্ক্রিপ্টে একটি অ্যারে বাছাই করুন", "রুবিতে একটি অ্যারে বাছাই করুন", "পাইথনের একটি অ্যারে বাছাই করুন" ... এবং কোনও লাভের জন্য আরও 300 টি চ্যালেঞ্জ থাকতে চাই।
মার্টিন এন্ডার

8
@ স্ক্লিভিভিজ যেমন ট্রাইকোপলাক্স বলেছিলেন, এটি একটি চ্যালেঞ্জের জন্য সূক্ষ্ম প্রেরণা, তবে এটি একটি খুব সাধারণ স্ট্রিং-প্রসেসিং টাস্কে ফোটে যা অন্য কোনও ভাষায় ঠিক ততটা জ্ঞান করে। অন্য যে কোনও ভাষার তুলনায় জাভাস্ক্রিপ্টে চ্যালেঞ্জটি বিশেষভাবে কঠোর, করণীয় বা আকর্ষণীয় নয় (বিশেষত, কেউ হয়ত বাম-প্যাড প্যাকেজ সম্পর্কে জানেন না, এবং এখনও ভাষা সীমাবদ্ধতা ছাড়াই এই প্রশ্নটি জিজ্ঞাসা করতে পারেন, এবং জাভাস্ক্রিপ্টের উত্তরগুলি চাইবে না ' টি মোটামুটি প্রভাবিত হয়েছে, এবং কেউই ভাববেন না "কেন এই জেএস-কেবল নয়?")।
মার্টিন ইন্ডার

উত্তর:


20

পাইথ, 13 11 বাইট

+*.xwd-Qlzz

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

প্রথম লাইনের স্ট্রিং, দ্বিতীয় লাইনের দৈর্ঘ্য এবং তৃতীয় লাইনে প্যাডিং চরটি বিকল্প হিসাবে এসটিডিআইএন থেকে ইনপুট নেয়।


4
এটি কেবল জাভাস্ক্রিপ্ট হিসাবে ধরা হয়েছে
এমএমএম

22
@ এমএমএম চ্যালেঞ্জগুলিতে ভাষা নিষেধাজ্ঞাগুলি সর্বজনীনভাবে অপছন্দিত বলে আমি আশা করি যে এটি সংক্ষেপে উপেক্ষা করা হবে। " আপনি অংশ নিতে পারবেন না " বলতে কাউকেই পছন্দ হয় না।
xnor


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

4
'এটি একটি মন্দ সমাজ যেখানে নাগরিকরা নাগরিক অবাধ্যতা করছে!
ভেন

13

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

f=(s,n,p=" ",r=p)=>(r+=s+="")[n]?s:f(r,n,p)

1
আপনি 3 য় প্যারামিটার দিতে ভুলে গেছেন
m0sa

@ m0sa ধন্যবাদ, স্থির।
নীল

এটি এখন তৃতীয় টেস্টে ব্যর্থ হয়েছে ;-)
স্ক্লিভিভিজ

1
@ স্ক্লাইভজ উগ, প্রয়োজনীয়তাগুলি সঠিকভাবে না পড়ার জন্য আমি এটাই পাই।
নীল

পরিবর্তে p+=s, আপনি এটি তৈরি করতে 2 বাইট যুক্ত করতে পারেন p+=[s]এবং এটি কার্যকর হবে।
অ্যাপলেট 123

7

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

(a,n,c=' ')=>((c+'').repeat(n)+a).substr(-n)

টেস্ট:

> f=(a,n,c)=>((c?c:" ").repeat(n)+a).substr(-n)
< function (a,n,c)=>((c?c:" ").repeat(n)+a).substr(-n)
> f('foo', 5) === '  foo';
< true
> f('foobar', 6) === 'foobar';
< true
> f(1, 2, 0) === '01';
< true
> f(1, 2, '-') === '-1';
< true

আপনি যদি ফাংশন ঘোষণার গণনা করতে চান তা নিশ্চিত নই, আমি এটি ইনলাইন করব।


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

sliceতুলনায় খাটো substr
মামা ফান রোল

@ দেউসোভি ঠিক আছে আমার অর্থ হ'ল আমি করব না console.log(f("whatever",10, "*")), তবেconsole.log(("*".repeat(10)+"whatever").substr(-10))
স্ক্লিভিভিজ

7

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

(s,l,c=' ')=>c.repeat(l-s.length)+s

চেষ্টা করে দেখুন আমি বিশ্বাস করি এটি জাভাস্ক্রিপ্টে বর্তমানে সম্ভব সবচেয়ে সংক্ষিপ্ত সম্ভাবনা imp


এটি আমি যা করতে যাচ্ছিলাম এটি বাদে কোনও অজ্ঞাতনামা কাজ ছিল না।
অ্যাপলেট 123

@ অ্যাপলেট 123 আমি মনে করি প্রতিযোগিতার সংজ্ঞা অনুসারে এটি কী প্রত্যাশা করেছে তা ঠিক। এটি কেবল ফাংশনটি চেয়েছিল; এটিকে নামকরণ এই প্রসঙ্গে অপ্রাসঙ্গিক বা কমপক্ষে আমি অন্যান্য উত্তরের উপর ভিত্তি করে এটি ভাবব।
ডেভিড

5

পাইথন 3, 33 31 29 বাইট

lambda a,b,x=" ":a.rjust(b,x)

মোটামুটি সহজবোধ্য. আমাকে মনে করিয়ে দেওয়ার জন্য @ এক্সনোরকে ধন্যবাদ str.rjustএকটি জিনিস। : P: P

একই দৈর্ঘ্যের জন্য (এক্সএনওরকেও ধন্যবাদ):

lambda a,b,x=" ":(x*b+a)[-b:]

পূর্ববর্তী সমাধান:

lambda a,b,x=" ":x*(b-len(a))+a

এটি করা (x*b+a)[-b:]বা কিছুটা খাটো করা a.rjust(b,x)। আসলে, str.rjustনিজেই যুক্তিযুক্তভাবে পুরো জিনিসটির জন্য কাজ করে।
xnor

@ এক্সনোর আমি ভুলে গিয়েছিলাম rjustএকজন বিল্টিন ছিল, ধন্যবাদ!
বিড়াল

এগুলির f(1, 2, 0) === '01';
ভ্যালেন্টিন লরেন্টজ

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

এখন একটি জল্পনা রয়েছে, এবং সমাধান 1 অবৈধ (পাইথন ২.7.১০ তে পরীক্ষা করা হয়েছে)
ক্যালকুলেটরফলাইন

5

05 এ বি 1 , 11 9 বাইট

কোড:

g-ð³0@×¹«

ব্যাখ্যা:

g          # Implicit first input, take the length.
 -         # Substract the length with the second input.
  ð³       # Push a space and if the third input exists, also the third input.         
    0@     # Reposition the first element of the stack to the top (zero-indexed).
      ×    # Multiply the character with the difference in length.
       ¹«  # Concatenate the first input to the string.

ব্যবহার সিপি-1252 এনকোডিং। এটি অনলাইনে চেষ্টা করুন


1
এই সমস্ত অক্ষর জেলি কোডপেজ (0x672D188330401181FA)
ক্যালকুলেটরফলাইন

5

জাভাস্ক্রিপ্ট (ES5), 70 বাইট

পুনরাবৃত্তি ব্যবহার করা হচ্ছে ...

function f(s,c,p,u){return(s+'').length<c?f((p==u?' ':p+'')+s,c,p):s}

আমার প্রাথমিক যাত্রা ছিল মাত্র 57 বাইট:

function f(s,c,p){return s.length<c?f((p||" ")+s,c,p):s}

তবে কেবল প্রথম 2 টি পরীক্ষায় উত্তীর্ণ হয়েছে:

> f('foo', 5) === '  foo';
true
> f('foobar', 6) === 'foobar';
true
> f(1, 2, 0) === '01';
false
> f(1, 2, '-') === '-1';
false

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


4

গণিত, 13 বাইট

StringPadLeft

কেবল অন্তর্নির্মিত উত্তর # 3 (প্রথমটি ছিল Range, দ্বিতীয়টি ছিল Surd) বা কম অন্তর্নির্মিত: (35 বাইট)

##2~StringRepeat~(#3-Length@#2)<>#&

আমি কি চুপচাপ ডাউনটা করতে পারি?
edc65

2
... কেন? এটি কেবল একটি অন্তর্নির্মিত কারণ? ৪১ বাইট পাইথন উত্তর # 1 (যা আর বৈধ নয়) একটি বিল্টিনের জন্য কেবল একটি মোড়ক ছিল।
ক্যালকুলেটরফলাইন 21

It's common practice to disallow built-ins that exactly implement what the challenge asks if that's a concern.(কর্তৃপক্ষের কাছে আবেদন: মার্টিন) (তবে সাধারণ
জ্ঞানও

@ edc65 সম্পর্কিত মেটা পোস্ট । আমি নিশ্চিত যে এটি অনুমোদিত, কারণ বিল্ট-ইনগুলি সাধারণত ডিফল্টরূপে অনুমোদিত হয়। প্রাসঙ্গিক অন্তর্নির্মিত ফাংশনটি জানতে এটির ব্যবহারকারীর পক্ষ থেকে সৃজনশীলতা এবং জ্ঞান প্রয়োজন।
mbomb007

1
@ mbomb007 অনুমোদিত হতে পারে - সৃজনশীল নং। আমি এই উত্তরটিকে অবৈধ হিসাবে পতাকাঙ্কিত করি না তবে আমার
ডাউনটাতে মেন্টেন

3

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

lpad

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

julia> lpad("foo", 5)
"  foo"

julia> lpad("foobar", 6)
"foobar"

julia> lpad(1, 2, 0)
"01"

julia> lpad(1, 2, '-')
"-1"

এটা কি কাজ করে rect 7 cor?
ক্যালকুলেটরফলাইন

হ্যাঁ। lpad("rect", 7, "cor") => "correct"
ফেঞ্জিয়াং ওয়াং

3

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

(a,n,c=' ',s=a+'')=>(new Array(++n-s.length).join(c)+s)

মানগুলির একটি খালি অ্যারে তৈরি করুন এবং সংস্করণে যোগদান করুন।

(a,n,c=' ')=>{a+=''; return new Array(++n-a.length).join(c)+a}

আরও পঠনযোগ্য তবে returnআরও কয়েকটি অক্ষর যুক্ত হয়েছে।


যেহেতু প্রশ্নটি আটকে আছে আমি জেএস উত্তরের অধীনে আমার উত্তরটি রাখব যা আমার মতোই। 43 বাইট (গুলি, এন, সি = '') => (অ্যারে (এন) .জয়েন (সি) + গুলি) .স্লাইস (-ন)
চার্লি ওয়েন

টিপ: `জন্য inline code blocks.
ক্যালকুলেটরফলাইন

+=এটির বাম অপারেণ্ডের মান প্রদান করে, তাই দ্বিতীয় সংস্করণটি খাটো হয়ে যায়: (a,n,c=' ')=>(new Array(++n-(a+='').length).join(c)+a)আপনি মাল্টিচার প্যাডিং স্ট্রিং যুক্ত করলে এটি দীর্ঘতর হয়।
ক্যালকুলেটরফলাইন

3

বাশ, 57 বাইট

পরামিতি: স্ট্রিং প্রস্থ প্যাচার

printf -vX %$2s;Y="${X// /${3- }}$1";echo -n "${Y:${#1}}"

প্রস্থের একটি স্ট্রিং তৈরি করুন ।

প্রতিটি স্থানের অক্ষরকে প্যাচারে রূপান্তর করুন ।

প্যাডিং লিখুন তারপর স্ট্রিং


2

পাইথন, 41 বাইট

lambda a,b,x=' ':str(a).rjust(b,str(x))

বিল্টিন র‌্যাড ছাড়া 43 বাইট:

lambda a,b,x=' ':str(x)*int(b/2%3)+str(a)

(কেউ এটির কাছ থেকে কী প্রত্যাশা করে তা নয়, তবে এটি পরীক্ষার স্যুটটি পাস করে)


আপনি অপসারণ করতে পারেন s=strএবং প্রতিস্থাপন sসঙ্গে strএকই বাইট গণনা জন্য।
ক্যালকুলেটরফলাইন

2

জেলি , 12 বাইট

L⁴_ẋ@⁵⁵⁶<?¤³

তাই অনেক পরিবর্তনশীল রেফারেন্স। জেলি কি স্বচ্ছ ভাষা হওয়ার কথা ছিল না ?

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

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

L⁴_ẋ@⁵⁵⁶<?¤³  Main link
              Arguments: string (³), length (⁴), padchar (⁵, defaults to 10)

L             Compute the length of ³.
 ⁴_           Subtract the length from ⁴.
          ¤   Combine the two links to the left into a niladic chain:
     ⁵          Yield ⁵.
      ⁵⁶<?      Yield ⁵ if ⁵ < ⁵, else ⁶.
              Comparing a number with itself gives 0 (falsy), but comparing a
              string / character list with itself gives [0] (truthy).
   ẋ@         Repeat the result to the right as many times as specified in the
              result to the left.
           ³  Print the previous return value and return ³.

padchar (⁵, defaults to 10)এটি ডিফল্ট 20বা না করা উচিত 32?
বিড়াল

1
সুপারস্ক্রিপ্ট 3 থেকে 9 হ'ল ধ্রুবক যা আর্গুমেন্টের (যদি উপস্থিত থাকে) বা কিছু কার্যকর ডিফল্ট মানগুলিতে শুরু হয়। শর্তসাপেক্ষে ?পরীক্ষা করে যদি এটির ডিফল্ট মান 10 হয় এবং সে ক্ষেত্রে একটি জায়গা দেয়।
ডেনিস

2

জাভাস্ক্রিপ্ট ES7, 16 বাইট

''.padStart.bind

বিল্ট ইনগুলি এফটিডব্লিউ! কেবল ফায়ারফক্স ৪৮ এবং তারপরের উপর কাজ করে। এই বৈশিষ্ট্যটি বৈধ হিসাবে 12 মার্চ যুক্ত করা হয়েছে।

এটি এর মতো ইনপুট নেয়:

(''.padStart.bind)(arg1)(arg2,arg3)

1

পাইক , 67 বাইট

mixed n(mixed a,int b,mixed x){return x!=""?x:" "*(b-strlen(a))+a;}

দীর্ঘশ্বাস । খালি স্ট্রিং ""এটিকে মূল্যায়ন করে trueকেন !?

মিশ্র মিশ্রিত মিশ্র মিশ্র পাইক স্যুপ ...


বোকা সত্যের সাথে আর একটি ভাষা।
ক্যালকুলেটরফলাইন

@ ক্যাটস আরেফ্লাফি হ্যাঁ, পাইক দারুণ অদ্ভুত, তবে এটিতে স্ট্রিং প্রসেসিংয়ের খুব ভাল সুবিধা রয়েছে।
বিড়াল

1

পাইক , 12 বাইট (নন-কেপটিং)

যুক্ত ইনপুট নোড, লেন নোডে বাগফিক্স, চ্যালেঞ্জ পোস্ট হওয়ার পরে অ্যাসাইন নোডের ডিফল্ট ফলাফল পরিবর্তন করুন।

\ =zzjl-z*j+

ব্যাখ্যা:

\ =z         - assign default input for `z` to be " " (Will still prompt but no input will return a space instead)
    zj       -     j = input()
      l      -    len(j)
       -     -   eval_or_not_input() - ^
        z*   -  ^*input()
          j+ - ^+j

+1 কারণ ভাষায় উত্তর দেওয়া আপনাকে এটি পরিমার্জনে সহায়তা করছে :)
বিড়াল

আমি আপনার শিরোনামের ফর্ম্যাটটি সম্পাদনা করেছি যাতে ব্যবহারকারীর স্ক্রিপ্ট ইত্যাদির জন্য সহজেই পড়তে ও সহজতর করা যায় - যদি আপনি একমত না হন তবে এটিকে আবার রোল করুন।
বিড়াল

ডাউনটা কেন?
নীল

1
@ মুডিফিশ মনে হয় যে এখানে প্রতিটি জাভাস্ক্রিপ্টের উত্তর হ্রাস পেয়েছে।
আদনান

@ অ্যান্ডএন কেবল সুন্দর নয় ... এছাড়াও কেন আমি শীর্ষ answers টি উত্তর থেকে একটি প্যাটার্ন দেখতে পেলাম না
ব্লু


1

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

আমি একটি পুনরাবৃত্তি সমাধান ব্যবহার করেছি।

f=(s,l,c=' ')=>s[l-1]?s:f(c+s,l,c)

0

রুবি, 42 বাইট

def left_pad(s,t,p=" ");p*(t-s.size)+s;end

পরামিতি: স্ট্রিং, আকার, প্যাচচার har

টেস্ট স্যুট নীচে; সমস্ত "সত্য" গুলি মুদ্রণ করা উচিত, সবকিছু একই ফাইলটিতে রেখে দেওয়া উচিত।

puts left_pad("foo", 5) == "  foo"
puts left_pad("foobar", 6) == "foobar"
puts left_pad("1", 2, "0") == "01"
puts left_pad("1", 2, "-") == "-1"

আপনার সেই পদ্ধতির নামটি ব্যবহার করার দরকার নেই ... এবং আপনি সম্ভবত এটি ল্যাম্বদাও তৈরি করতে পারেন। (অন্যান্য সমস্ত উদাহরণ একই রকম করে)
চার্লস

0

জাভা 8, 86 88 বাইট

এটি একটি ফাংশন। তৃতীয় যুক্তি হ'ল varargsalচ্ছিক প্যাড চরকে অনুমতি দেওয়া (এতে ডিফল্ট ' ')

String p(String s,int l,char...p){return s.length()<l?p((p.length>0?p[0]:' ')+s,l,p):s;}

Recursion! +2 বাইট (বেমানান ধরণের ত্রুটির কারণে বন্ধনী যুক্ত করা হয়েছে)


এই প্রকারের ত্রুটি। সবসময় Ideone পরীক্ষা করতে পারেন (জাভা 7, কিন্তু আমি আমার বাক্সে জাভা 8 একই সঠিক ভুল পান) ideone.com/B7gTA5
বিড়াল

0

পিএইচপি, 54 48 বাইট

উইন্ডোজ -1222 এনকোডিং ব্যবহার করে।

function(&$s,$l,$p=~ß){$s=str_pad($s,$l,$p,0);};

এটি চালান ( -dকেবল পূর্ব-পূর্বের জন্য যুক্ত):

php -r '$f = function(&$s,$l,$p=~ß){$s=str_pad($s,$l,$p,0);}; $s="foo";$f($s,5);echo"$s\n";' 2>/dev/null

পুরানো সংস্করণ (বিল্টিন ছাড়া):

function(&$s,$l,$p=~ß){for(;strlen($s)<$l;)$s=$p.$s;};

বদলান

  • str_padএকটি লুপের পরিবর্তে ব্যবহার করে 6 বাইট সংরক্ষণ করা হয়েছে । পুরানোটিকে রেফারেন্সের জন্য রেখে দেওয়া, যেমন বিল্টিনগুলি ভ্রূণিত হয়

0

আর, 50 বাইট

আবার পার্টিতে দেরি হলেও এখানে চলে গেছে:

function(s,n,p=" ")cat(rep(p,n-nchar(s)),s,sep="")

এটি আউটপুটটিকে স্টডআউটে প্রিন্ট করে তবে আসলে প্যাডড স্ট্রিং ফেরত দেয় না (চ্যালেঞ্জের জন্য এটি কোনও প্রয়োজন কিনা তা নিশ্চিত ছিল না)। এটির প্রয়োজন হলে সমাধানটি 61 বাইটে কিছুটা দীর্ঘ হয়:

function(s,n,p=" ")paste0(c(rep(p,n-nchar(s)),s),collapse="")

-3

সি, 64 বাইট

f(s,n,c,p){return memset(p,c,asprintf(&p,"%*s",n,s)-strlen(s));}

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


2
এটি নির্দিষ্টকরণের সাথে সম্মতি দেয় না, কারণ কোনও অক্ষর সরবরাহ না করা হলে এটি স্থানটিতে ডিফল্ট হয় না।
ডুরকনব

এই কোড দেওয়া হিসাবে চলমান না। gccদেব undefined reference to function printfপাস অন্তর্ভুক্ত printfনিজেই কিন্তু এমন কোন ভাগ্য memset, asprintfএবং strlen#include<string.h>এটি কার্যকর করার জন্য আপনার ... ইত্যাদি সংজ্ঞা যুক্ত করতে হবে।
বিড়াল

@ ট্যাক হুমম ... আমি আমার উত্তরটি সম্পূর্ণ আদর্শের মধ্যে লিখেছি এবং পরীক্ষা করেছি। এটি সেই প্ল্যাটফর্মে সফলভাবে সংকলন এবং রান করে, যদিও এটি উল্লেখ করে যে এটি ব্যবহার করে gcc-5.1। আমি নিশ্চিত নই যে তারা কম্পাইলার পতাকা ব্যবহার করছে বা আমি যা জানি না তার নেপথ্যে আপনার কী রয়েছে have আমি প্রথমে ব্যবহার করছিলেন এই আমার যৌক্তিকতা জন্য এটি আপনার পরিবেশে চলমান না, কিন্তু এখন আমি নিশ্চিত নই ...
কোল ক্যামেরন

ঠিক আছে, gcc 5.2.1এটি লিনাক্সে রয়েছে, তাই আপনি সম্ভবত এই কথার সাহায্যে পালাতে সক্ষম হবেন Ideone C, 64 bytesতবে আপনি যদি এটি সি সি দাবি করেন তবে এটি সংকলন করুন। : পি
বিড়াল

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