ওয়েভ করি!


29

ইনপুট:

  • একটি দৈর্ঘ্য সহ একটি স্ট্রিং (তরঙ্গ-স্নিপেট) >= 2
  • একটি ধনাত্মক পূর্ণসংখ্যা n >= 1

আউটপুট:

আমরা একক লাইন তরঙ্গ আউটপুট। আমরা ইনপুট স্ট্রিংটি n বার পুনরাবৃত্তি করে এটি করি ।

চ্যালেঞ্জ বিধি:

  • যদি ইনপুট স্ট্রিংয়ের প্রথম এবং শেষ চরিত্রটি মেলে তবে আমরা কেবলমাত্র এটির ফলাফল একবার (আউট ^_^2 দৈর্ঘ্যের হয়ে যায় ^_^_^এবং না ^_^^_^) একবার আউটপুট ।
  • ইনপুট স্ট্রিংয়ে কোনও সাদা স্থান / ট্যাব / নতুন লাইন / ইত্যাদি থাকবে না।
  • যদি আপনার ভাষা অ-এসসিআইআই অক্ষরগুলি সমর্থন করে না, তবে তা ঠিক। যতক্ষণ না এটি এখনও ASCII- কেবল তরঙ্গ-ইনপুট সহ চ্যালেঞ্জের সাথে সম্মতি জানায়।

সাধারাইওন রুল:

  • এটি , তাই বাইট জেতে সংক্ষিপ্ত উত্তর।
    কোড-গল্ফ ভাষাগুলি আপনাকে নন-কোডগলফিং ভাষার সাথে উত্তর পোস্ট করতে নিরুৎসাহিত করবেন না। 'যে কোনও' প্রোগ্রামিং ভাষার পক্ষে যতটা সম্ভব সংক্ষিপ্ত উত্তর নিয়ে আসার চেষ্টা করুন।
  • স্ট্যান্ডার্ড নিয়মগুলি আপনার উত্তরের জন্য প্রযোজ্য , সুতরাং আপনাকে সঠিক পরামিতিগুলি, সম্পূর্ণ প্রোগ্রামগুলির সাথে STDIN / STDOUT, ফাংশন / পদ্ধতি ব্যবহারের অনুমতি দেওয়া হবে। আপনার কল
  • ডিফল্ট লুফোলগুলি নিষিদ্ধ।
  • যদি সম্ভব হয় তবে আপনার কোডের জন্য একটি পরীক্ষার সাথে একটি লিঙ্ক যুক্ত করুন।
  • এছাড়াও, প্রয়োজন হলে একটি ব্যাখ্যা যোগ করুন।

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

_.~"(              length 12
_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(

'°º¤o,¸¸,o¤º°'     length 3
'°º¤o,¸¸,o¤º°'°º¤o,¸¸,o¤º°'°º¤o,¸¸,o¤º°'

-__                length 1
-__

-__                length 8
-__-__-__-__-__-__-__-__

-__-               length 8
-__-__-__-__-__-__-__-__-

¯`·.¸¸.·´¯         length 24
¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯

**                 length 6
*******

String & length of your own choice (be creative!)

প্রশ্নে ফলাফল সহ স্নিপেট যোগ করা ভাল হবে :)
Qwertiy

2
"একটি ইতিবাচক পূর্ণসংখ্যা এন >= 1 " আমার কাছে খুব আনন্দদায়ক বলে মনে হচ্ছে ... :)
পাওলো

উত্তর:



23

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

lambda s,n:s+s[s[0]==s[-1]:]*~-n

স্ট্রিংয়ের nঅনুলিপিগুলিকে সংযুক্ত করে, সমস্ত অনুলিপি থেকে প্রথম অক্ষরটি সরিয়ে দেয় তবে প্রথম চরিত্রটি শেষের সাথে মিলিত হয়।


এটি প্রশ্নের "¯` · .¸¸। · ´¯" স্ট্রিংটি সঠিকভাবে পরিচালনা করে না, তাই না? যখন আমি এটি চেষ্টা করে দেখি s[0]এবং s[-1]প্রথম এবং শেষ চরিত্রের চেয়ে প্রথম এবং শেষ বাইটটি উল্লেখ করেছি। সম্পাদনা: আহা, অপেক্ষা করুন, এটি পাইথন 2 বনাম পাইথন ৩. এটি পাইথন ৩ এ সঠিকভাবে কাজ করে
এইচডিভি

15

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

ব্যবহার সিপি-1252 এনকোডিং।

D¬U¤XQi¦}I<×J

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

ব্যাখ্যা

-___-এবং 3উদাহরণস্বরূপ ইনপুট হিসাবে ব্যবহৃত।

D              # duplicate input string
               # STACK: "-___-", "-___-"
 ¬U¤X          # push copies of the first and last element of the string
               # STACK: "-___-", "-___-", "-", "-"
     Q         # compare for equality 
               # STACK: "-___-", "-___-", 1
      i¦}      # if true, remove the first char of the copy of the input string
               # STACK: "-___-", "___-" 
         I<    # push input number and decrease by 1
               # STACK: "-___-", "___-", 2
           ×   # repeat the top string this many times
               # STACK: "-___-", "___-___-"
            J  # join with input string
               # STACK: "-___-___-___-"
               # implicitly output

11

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

f=
(s,n)=>s+s.slice(s[0]==s.slice(-1)).repeat(n-1)
;
<div oninput=o.textContent=n.value&&f(s.value,n.value)><input id=s><input id=n type=number min=1><div id=o>


1
২০ কে অভিনন্দন!
আদনান

2
@ আদনান ধন্যবাদ! 20002ও, যা দুর্দান্ত এবং প্রতিসম।
নীল

1
এই দৃষ্টিতে কি কারিঙ করা সম্ভব? এর s=>n=>...পরিবর্তে আমার অর্থ হচ্ছে(s,n)=>
Zwei

8

পার্ল, 29 বাইট

28 বাইট কোড +1 এর জন্য -p

আমাকে কয়েকটা বাইট ছাঁটাই করতে সাহায্য করার জন্য @ দাদাকে ধন্যবাদ !

s/^((.).*?)(\2?)$/$1x<>.$3/e

ব্যবহার

perl -pe 's/^((.).*?)(\2?)$/$1x<>.$3/e' <<< "'°º¤o,¸¸,o¤º°'
3"
'°º¤o,¸¸,o¤º°'°º¤o,¸¸,o¤º°'°º¤o,¸¸,o¤º°'
perl -pe 's/^((.).*?)(\2?)$/$1x<>.$3/e' <<< '**
6'
*******

অনলাইন উদাহরণ।


2
খুশী হলাম। আপনি এর থেকে পরিত্রাণ পেতে পারবেন <>পরিবর্তে 3 বাইট ব্যবহার করে (অপ্রত্যক্ষভাবে) সংরক্ষণ $'করতে পারেন -0। এবং তারপরে আপনি আরও একটি বাইট জয় করার s///eপরিবর্তে ব্যবহার করতে পারেন //;$_=:-)
দাদা

@ দাদা চমৎকার ... আমি সম্পূর্ণরূপে আমার মূল প্রচেষ্টাটি ব্যর্থ করেছিলাম এবং এটিকে আরও ছড়িয়ে দিয়েছি এবং এটিকে আরও বৃহত্তর করে তুলেছি ... আমি আপনার মন্তব্যগুলি বোর্ডে নিয়েছি $তবে শেষের সাথে ম্যাচ করার জন্য আমার দরকার আছে বলে মনে হচ্ছে , এখনও আমার বাইটগুলি সংরক্ষণ করে ব্যবহার না করার 'অর্থ আমি এটিকে 3 টির জন্য সংরক্ষণ করতে কোনও ফাইলকে সেভ করে -pফেলে দিতে পারি এবং এটি আবার 1 এ ফেলে দিতে পারি!
ডম হেস্টিংস

1
Huhu। হ্যাঁ সত্যই এটি $আপনার আগে থাকা নতুন লাইনের পরিবর্তে প্রয়োজন। (দুঃখিত আমার মন্তব্যটি খুব বিশদ ছিল না, আমি খুব তাড়াহুড়ো করেছিলাম ...)
দাদা

আমি <>প্রতিস্থাপন স্ট্রিং ব্যবহার করার ধারণা পছন্দ করি । তবে যদি nনতুন লাইনের পরিবর্তে কোনও স্থান দ্বারা পৃথক করা হয় তবে চরিত্রের গণনাটি কিছুটা কমিয়ে আনা যায়:s/(.+?) (\d+)/$1x$2/e
que ই

1
@ ডোমহাস্টিংস আহ, আমার ভুল। প্রশ্নটি যথাযথভাবে পড়েনি :-)
01 ই

6

পার্ল, 23 বাইট

এর জন্য +1 অন্তর্ভুক্ত -p

STDIN এ পৃথক লাইনে সংখ্যার পরে ইনপুট স্ট্রিং দিন

wave.pl <<< "'°º¤o,¸¸,o¤º°'
3"

wave.pl:

#!/usr/bin/perl -p
$_ x=<>;s/(.)\K
\1?//g

শব্দের প্রথম অক্ষরটি যদি রেজেক্সের বিশেষ অক্ষর না হয় তবে এই 22 বাইট সংস্করণটিও কাজ করে:

#!/usr/bin/perl -p
$_ x=<>;/./;s/
$&?//g

ঝরঝরে! আমি মনে করি আপনি /gমডিফায়ারটি ভুলে গেছেন যখন আপনি এটি আটকে দিয়েছেন যদিও ;-)
দাদা

@ দাদা উফস স্থির
টোন হসপেল 21

5

এমএটিএল, 19 17 14 বাইট

ttP=l):&)liX"h

এটি অনলাইন দোভাষীর এএসসিআইআই এবং ম্যাটল্যাব ব্যবহারের সময় ইউনিকোড এবং এএসসিআইআই উভয়ের পক্ষে কাজ করে।

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

ব্যাখ্যা

        % Implicitly grab the input as a string
        %   STACK:  {'abcdea'}
        %
tt      % Make two copies and push them to the stack
        %   STACK:  {'abcdea'    'abcdea'    'abcdea'}
        %
P       % Flip the second copy around
        %   STACK:  {'abcdea'    'abcdea'    'aedcba'}
        %
=       % Perform an element-wise comparison. Creates a boolean array
        %   STACK:  {'abcdea'    [1 0 0 0 1]}
        %
l)      % Get the first element. If the first and last char are the same this will be
        % TRUE (1), otherwise FALSE (0)
        %   STACK:  {'abcdea'    1 }
        %
:       % Create an array from [1...previous result]. If the first char was repeated,
        % this results in the scalar 1, otherwise it results in an empty array: []
        %   STACK: {'abcdea'    1 } 
        %
&)      % Break the string into pieces using this index. If there were repeated
        % characters, this pops off the first char, otherwise it pops off
        % an empty string
        %   STACK: {'a'    'bcdea'}
        %
li      % Push the number 1 and explicitly grab the second input argument
        %   STACK: {'a'    'bcdea'    1    3}
        %
X"      % Repeat the second string this many times
        %   STACK: {'a'    'bcdeabcdeabcdea'}
        %
h       % Horizontally concatenate the first char (in case of repeat) 
        % or empty string (if no repeat) with the repeated string
        %   STACK: {'abcdeabcdeabcdea'}
        %
        % Implicitly display the result


4

ব্যাচ, 117 বাইট

@set/ps=
@set t=%s%
@if %s:~0,1%==%s:~1% set t=%s:~1%
@for /l %%i in (2,1,%1)do @call set s=%%s%%%%t%%
@echo %s%

কমান্ড-লাইন প্যারামিটার হিসাবে পুনরাবৃত্তির সংখ্যা নেয় এবং STDIN থেকে স্ট্রিংটি পড়ে reads



3

গেম, 41 অক্ষর

* *=@subst{\? \$1=\?\; =;@repeat{$2;$1 }}

নমুনা রান:

bash-4.3$ gema '* *=@subst{\? \$1=\?\; =;@repeat{$2;$1 }}' <<< '_.~"( 12'
_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(

bash-4.3$ gema '* *=@subst{\? \$1=\?\; =;@repeat{$2;$1 }}' <<< "'°º¤o,¸¸,o¤º°' 3"
'°º¤o,¸¸,o¤º°'°º¤o,¸¸,o¤º°'°º¤o,¸¸,o¤º°'

bash-4.3$ gema '* *=@subst{\? \$1=\?\; =;@repeat{$2;$1 }}' <<< '** 6'
*******

3

পাওয়ারশেল ভি 2+, 48 বাইট

Param($s,$n)$s+$s.Substring($s[0]-eq$s[-1])*--$n

প্রথম এবং শেষ অক্ষর মেলে কিনা তার উপর নির্ভর করে স্ট্রিং বা সাবস্ট্রিংয়ের এন -1 অনুলিপিগুলির পরে পুরো স্ট্রিংটি একবার আউটপুট করে।

.Substring()সূচি থেকে পদ্ধতি আউটপুট স্ট্রিংয়ের শেষ প্রান্ত সরবরাহ, তাই যদি $s[0]-eq$s[-1]মিথ্যা (0) মূল্যায়ণ, আমরা পুরো স্ট্রিং পেতে। যদি উক্তিটি সত্য হয় (1), আমরা দ্বিতীয় অক্ষর থেকে শুরু করে স্ট্রিংটি পাই।


ডাঙ্গিত, ইয়া আমাকে কয়েক মিনিট মারবে। আমার একই উত্তর ছিল ($ s এবং $ n এর পরিবর্তে $ a এবং $ b ব্যবহার করে)।
অ্যাডমবর্কবার্ক

3

ভিবিএ 119 বাইট

এই গেমটিতে নতুন এবং সর্বাধিক বাইট সহ ভিবিএ জিতেছে: পি

দ্রষ্টব্য: বিশ্বাস করতে পারছি না VBA জাভা ঘনিষ্ঠ দাঁড়িয়েছে হা হা

Function l(s,x)
l=s: s=IIf(Left(s,1)=Right(s,1),Mid(s,2,Len(s)),s)
z: x=x-1: If x>0 Then l=l & s: GoTo z:
End Function

ব্যাখ্যা:

+------------------------------------------------------------+-----------------------------------------------------------------------------------+
|                            code                            |                                     function                                      |
+------------------------------------------------------------+-----------------------------------------------------------------------------------+
| l=s                                                        | input string s is saved to base                                                   |
| s = IIf(Left(s, 1) = Right(s, 1), Right(s, Len(s) - 1), s) | checks whether 1 and last char is equal,                                          |
|                                                            | if yes removes the first char from s and that s will be used to for further joins |
| z:                                                         | z: is a label                                                                     |
| x = x - 1:                                                 | decreases looping round                                                           |
| If x > 0 Then l = l & s: GoTo z:                           | join strings until no more rounds to do                                           |
+------------------------------------------------------------+-----------------------------------------------------------------------------------+

3
পিপিসিজিতে আপনাকে স্বাগতম! আমি নিজে কিউব্যাসিক প্রোগ্রামার হিসাবে, আমি বলব যে আপনি বেশিরভাগ স্পেস সরিয়ে ফেলতে পারেন এবং এখনও বৈধ ভিবিএ কোড থাকতে পারেন, যেহেতু আপনি সংক্ষিপ্ত কোডটি টাইপ করতে বা আটকে দিতে পারবেন (অটোফর্মেটর দিয়ে স্পেস যুক্ত করে), রান রান করুন এবং এটি কাজ করে। এটি আপনার স্কোরকে যথেষ্ট উন্নত করবে। :)
ডিএলসকে

3

সিজেম, 16 15 বাইট

l]li*{(s@)@|@}*

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

ব্যাখ্যা:

l]li*            Create a list of n-times the input string.
{(s@)@|@}*       Fold this list by taking out the last character of the first 
                 argument and the first character of the second argument and 
                 replacing them by their unique set union.
                 e.g.: "aba" "aba" -> "ab" 'a"a"| "ba" -> "ab" "a" "ba"
                       "abc" "abc" -> "ab" 'c"a"| "bc" -> "ab" "ca" "bc

2
আমি আপনার তরঙ্গ ইনপুট পছন্দ করি। :)
কেভিন ক্রুইজসেন

3

কে, 12 বাইট

{,/[y#(,)x]}


/in action
{,/[y#(,)x]}["lollol";4]
"lollollollollollollollol"
{,/[y#(,)x]}["-_";10]
"-_-_-_-_-_-_-_-_-_-_"

/explanation (read function from right to left)
x is the string and y is the number of repetitions
(,)y    --enlist x so it becomes 1 value (rather than a list)
y#x     --take y many items of x
,/      --coalesce the list ,/[("-_";"-_")] --> "-_-_"

ধন্যবাদ


এটি 25 বাইটের {,/y#,$[(*x)~*|x;-1;0]_x}জন্য বিধি 1 টি ভঙ্গ করে প্রথম / শেষ ম্যাচটি পরিচালনা করে। আপনি খুশি অবিচ্ছিন্ন রুল 1 করছি, তাহলে আপনি থাকতে পারে জন্য 8.{,/y#,x}
streetster

2

পিএইচপি, 72 বাইট

<?=($a=$argv[1]).str_repeat(substr($a,$a[0]==substr($a,-1)),$argv[2]-1);

পিএইচপি 7.1 এর সাহায্যে এটি 65 বাইটে হ্রাস করা যেতে পারে

<?=($a=$argv[1]).str_repeat(substr($a,$a[0]==$a[-1]),$argv[2]-1);

2

পিপ , 18 বাইট

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

(q.s)XaR`(.) \1?`B

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

ব্যাখ্যা:

 q.s                Read from stdin and append a space
(   )Xa             String-multiply by first cmdline arg
       R            Replace
        `(.) \1?`     Regex: char followed by space followed by (optional) same char again
                 B    Callback function, short for {b}: return 1st capturing group

সুতরাং, a bরূপান্তরিত হয় ab, a aপরিণত হয় aএবং স্ট্রিংয়ের শেষে স্থানটি সরানো হয়। তারপরে ফলাফলটি স্ব-মুদ্রিত হয়।


2

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

a%b=concat$replicate a b
a@(s:z)#n|s/=last z=n%a|1<2=s:n%z

অবরুদ্ধ সংস্করণ:

-- Helper: Appends str to itself n times
n % str = concat (replicate n str)

-- Wave creating function
(x:xs) # n
 -- If start and end of wave differ, 
 | x /= last xs = n%(x:xs)
 | otherwise   = x:(n%xs)

2

জাভা 10, 123 111 109 107 102 100 79 বাইট

s->n->{var r=s;for(;n-->1;r+=s.matches("(.).*\\1")?s.substring(1):s);return r;}

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

একই বাইট-কাউন্ট ( by৯ বাইট ) সহ বিকল্প :

(s,n)->{for(var t=s.matches("(.).*\\1")?s.substring(1):s;n-->1;s+=t);return s;}

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

আমি অবশ্যই আমার নিজের প্রশ্নের উত্তর দেওয়ার চেষ্টা করব। ;)
-5 বাইট @ dpa97 ধন্যবাদ ।
-21 বাইট জাভা 7 থেকে 10 এ রূপান্তর করে।

ব্যাখ্যা:

s->n->{                // Method with String and integer parameters and String return-type
  var r=s;             //  Result-String, starting at the input-String
  for(;n-->1;          //  Loop `n-1` times
    r+=s.matches("(.).*\\1")?
                       //   If the first and last characters are the same:
        s.substring(1) //    Append the result-String with the input-String, 
                       //    excluding the first character
       :               //   Else:
        s);            //    Append the result-String with the input-String
  return r;}           //  Return the result-String

1
s.split (""। ") [1] s.replaceAll (" ^। "," ") এর পরিবর্তে একটি দম্পতি বাইট সংরক্ষণ করা উচিত
dpa97

@ dpa97 ধন্যবাদ! আমি এটি সম্পাদনা করেছি। আমি সবসময় ব্যবহার সম্পর্কে ভুলবেন .split
কেভিন ক্রুইজসেন

@ dpa97 আমি মনে করি আমি (বা আমরা) এটির চেয়ে বেশি চিন্তাভাবনা করেছি .. s.substring(1)দুটি বাইট সংক্ষিপ্ত। ;)
কেভিন ক্রুইজসেন

@ কেভিনকুরিজিজেন হ্যাঁ এটি অবশ্যই দেখা উচিত ছিল, ভাল সন্ধান। আমি মনে করি আমি
রেইগেক্স

1

জাভাস্ক্রিপ্ট ES6, 49 টি অক্ষর

(s,n)=>s.replace(/(.).*?(?=\1?$)/,m=>m.repeat(n))

টেস্ট:

f=(s,n)=>s.replace(/(.).*?(?=\1?$)/,m=>m.repeat(n))
console.log(document.querySelector("pre").textContent.split(`
`).map(s=>s.split` `).every(([s,n,k])=>f(s,n)==k))
<pre>_.~"( 12 _.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(
'°º¤o,¸¸,o¤º°' 3 '°º¤o,¸¸,o¤º°'°º¤o,¸¸,o¤º°'°º¤o,¸¸,o¤º°'
-__ 1 -__
-__ 8 -__-__-__-__-__-__-__-__
-__- 8 -__-__-__-__-__-__-__-__-
¯`·.¸¸.·´¯ 24 ¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯
** 6 *******</pre>


1

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

;:~left$$|(A,1)=right$$|(A,1)|A=left$$|(A,len(A)-1)][1,a|B=B+A]?B

আমার ধারণা আমি কিউবিসিতে বাম এবং সঠিক IGH যুক্ত করা উচিত ...

ব্যাখ্যা:

;          make the first cmd line parameter into A$
:          make the second cmd line parameter into a (num)
~left..]   Drop the last char if equal to the first char
[1,a...]   FOR the given number of repetitions, concat A$ to B$ (starts out empty)
?B         print B$

1

সি #, 79 বাইট

(s,n)=>s+new string('x',n-1).Replace("x",s[0]==s[s.Length-1]?s.Substring(1):s);

একটি স্ট্রিং পুনরাবৃত্তি করার জন্য একটি অযৌক্তিক পদ্ধতি of কাঙ্ক্ষিত পুনরাবৃত্ত দৈর্ঘ্যের একটি নতুন স্ট্রিং তৈরি করুন এবং তারপরে প্রতিটি অক্ষর পুনরাবৃত্তি করার জন্য স্ট্রিংয়ের সাথে প্রতিস্থাপন করুন। এটি বাদে অন্য অনেকের মতো দেখতে অনেকটা একই কৌশল।

/*Func<string, int, string> Lambda =*/ (s, n) =>
    s                                      // Start with s to include first char at start
    + new string('x', n - 1).Replace("x",  // Concatenate n-1 strings of...
        s[0] == s[s.Length - 1]            // if first/last char are the same
            ? s.Substring(1)               // then skip the first char for each concat
            : s                            // else concat whole string each time
    )
;

1
হুম, ইনপুট স্ট্রিংটিতে একটি থাকলে কী হবে x? সম্ভবত এটি একটি স্পেসে পরিবর্তন করা ভাল, যেহেতু " ইনপুট স্ট্রিংটিতে কোনও সাদা জায়গা / ট্যাব / নতুন লাইন / ইত্যাদি থাকবে না "।
কেভিন ক্রুইজসেন

1
ইনপুট থাকলে এটি ঠিকঠাক কাজ করবে x। এটি xx...xপ্রথমে স্ট্রিং তৈরি করে এবং তারপরে স্ট্রিংটির পুনঃমূল্যায়ন না করে প্রতিটি প্রতিস্থাপন করা xদরকার যা দিয়ে প্রতিস্থাপন করে।
দুধ 17

1

স্পেসবিএএস - 68 বাইট

1 INPUT a$,n: l=LEN a$: ?IIF$(a$(1)<>a$(l),a$*n,a$( TO l-1)*n+a$(l))

IFপ্রথম এবং শেষ অক্ষরগুলি একই কিনা তা পরীক্ষা করতে ইনলাইন- ব্যবহার করে । যদি তা না nহয় তবে বার বার মুদ্রণ করুন । অন্যথায়, স্ট্রিংটি দৈর্ঘ্য -1 এ বিভক্ত করুন, এটি পুনরাবৃত্তি করুন এবং শেষ অক্ষরটি শেষ করুন।

কেবলমাত্র ASCII অক্ষর (বা স্পেসবিএস আইডিইতে নির্মিত অক্ষরগুলি) গ্রহণ করতে পারে

এখানে চিত্র বর্ণনা লিখুন


1

এপিএল, 19 বাইট

{⍺,∊1↓⍵⍴⊂⍺↓⍨⊃⍺=⊃⌽⍺}

ব্যবহার:

      '^_^' {⍺,∊1↓⍵⍴⊂⍺↓⍨⊃⍺=⊃⌽⍺} 5
^_^_^_^_^_^

ব্যাখ্যা:

  • ⊃⍺=⊃⌽⍺: দেখুন প্রথম চরিত্রটি শেষ চরিত্রের সাথে মেলে কিনা
  • ⍺↓⍨: এটি যদি হয় তবে প্রথম অক্ষরটি ফেলে দিন
  • : ফলাফল বন্ধ করুন
  • ⍵⍴: এটি বার প্রতিলিপি
  • 1↓: প্রথমটি বাদ দিন (এটি এর চেয়ে কম (⍵-1)⍴)
  • : সমস্ত সাধারণ উপাদান পান (বক্সিংটি পূর্বাবস্থায় ফেরা)
  • ⍺,: পুরো স্ট্রিংয়ের একটি উদাহরণ সামনের অংশে যুক্ত করুন

1

পোস্টস্ক্রিপ্ট, 98 বাইট

exch/s exch def/l s length 1 sub def s 0 get s l get eq{/s s 0 l getinterval def}if{s print}repeat

... তবে আপনার পিএস ইন্টারপ্রেটারকে কম বাফারটি আরও ছয়টি বাইট ফ্লাশ করার জন্য আপনার একটি 'ফ্লাশ' ট্যাক করা দরকার :(


1

কমন লিস্প (লিস্প ওয়ার্কস), 176 বাইট

(defun f(s pos)(if(equal(elt s 0)(elt s #1=(1-(length s))))(let((s1(subseq s 0 1))(s2(subseq s 0 #1#)))(dotimes(j pos)(format t s2))(format t s1))(dotimes(j pos)(format t s))))

ব্যবহার:

    CL-USER 130 > (f "_.~~\"(" 12)
    _.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(_.~"(
    NIL

    CL-USER 131 > (f "'°o¤o,??,o¤o°'" 3)
    '°o¤o,??,o¤o°'°o¤o,??,o¤o°'°o¤o,??,o¤o°'
    NIL

    CL-USER 132 > (f "-__" 1)
    -__
    NIL

    CL-USER 133 > (f "-__" 8)
    -__-__-__-__-__-__-__-__
    NIL

    CL-USER 134 > (f "ˉ`·.??.·′ˉ" 24)
    ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ`·.??.·′ˉ
    NIL

    CL-USER 135 > (f "**" 6)
    *******
    NIL

ব্যাখ্যা:

~~ =>   ~

\" =>   " 

Ungolf:

    (defun f (s pos)
      (if (equal (elt s 0) (elt s (1- (length s))))
          (let ((s1 (subseq s 0 1)) (s2 (subseq s 0 (1- (length s)))))
            (dotimes (j pos)
              (format t s2))
            (format t s1))        
        (dotimes (i pos)
          (format t s))))

1

ভিম, 17 বাইট

এটি করার সহজ উপায় হ'ল একটি ব্যাক-রেফারেন্স রেজেক্স ব্যবহার করা যা প্রথম এবং শেষ অক্ষরের সাথে মেলে কিনা তা বলতে পারে। তবে লম্বা রেজেক্সেস দীর্ঘ are আমরা এটা চাই না।

lDg*p^v$?<C-P>$<CR>hd@aP

পুনরাবৃত্তি করার তরঙ্গ বাফারে। আমি ধরে নিচ্ছি যে নাম্বারটি পুনরাবৃত্তি করা হবে তা নিবন্ধটিতে রয়েছে "a( qaNqসেট আপ করার জন্য এন দিয়ে টাইপ করুন )। ধারণাটি হ'ল:

  • যদি প্রথম এবং শেষ বাইটস মেলে তবে শেষ অক্ষর পর্যন্ত সমস্ত কিছু মুছুন।
  • যদি প্রথম এবং শেষ বাইটস মেলে না , সমস্ত অক্ষর মুছুন।

তারপরে Pমুছে ফেলা পাঠ্য @aবার।

  • lDg*: এই চালচলন একটি রেজেক্স তৈরি করে যা যে কোনও প্রথম চরিত্রের সাথে মেলে, এটিকে পালানোর দরকার হয় বা না হয় বা এটি একটি শব্দ বা না তা নির্বিশেষে। ( *সঠিকভাবে পালিয়ে যাওয়া রেজেক্স তৈরি করার জন্য যথেষ্ট হবে তবে \<\>এটি শব্দের চরিত্রের মতো হলে অযাচিত আবর্জনা যুক্ত করবে_ ))
  • p^: শেষ পদক্ষেপ অগোছালো ছিল। লাইনের শুরুতে মূল অবস্থানটি পরিষ্কার করুন Clean
  • v$: ভিজ্যুয়াল মোডে, $ডিফল্টরূপে লাইনের শেষের পরে চলে যায় ।
  • ?<C-P>$<CR>hd: লাইনটির শেষে যদি পূর্ববর্তী রেজেক্স উপস্থিত থাকে তবে এই অনুসন্ধানটি এতে চলে যাবে; অন্যথায়, লাইনের শেষের বাইরে থাকুন। সেখান থেকে বাম দিকে সরান এবং আমরা আমাদের প্রয়োজন (ক্লান্তিকর) মোছাটি সম্পাদন করি।
  • @aP: যুক্তি হিসাবে ব্যবহার করতে ম্যাক্রো হিসাবে পুনরাবৃত্তি সংখ্যাটি চালান P

1

রুবি, 38 বাইট

->s,n{s[0]==s[-1]?s[0..-2]*n+s[0]:s*n}

আমি মনে করি এটি বেশ স্ব-ব্যাখ্যামূলক। আমি এখনও ভাবছি যে s[0..-2]ব্লকের প্রতিনিধিত্ব করার আরও সংক্ষিপ্ত উপায় আছে কিনা , তবে আমি এটি এখনও পাইনি।


0

জাভা (117 বাইট)

String w(String a,int b){String c=a;for(;b>0;b--)c+=b+a.substring(a.charAt(a.length()-1)==a.charAt(0)?1:0);return c;}

1
হাই, পিপিসিজিতে আপনাকে স্বাগতম! হুঁ, আমি ইতিমধ্যে এখানে একটি ছোট জাভা 7 উত্তর পোস্ট করেছি । ইতিপূর্বে আপনার মত একই পদ্ধতি ব্যবহার করুন। এই একই পদ্ধতির ব্যবহার করে আপনি গল্ফ b>0;b--করতে পারেন b-->0;। এছাড়াও, b+সেখানে কেন c+=b+a.substring? তবুও, আপনি যদি এটির সাথে স্বাধীনভাবে উপস্থিত হন তবে এটি একটি দুর্দান্ত প্রথম উত্তর। এখানে আপনার পিপিসিজিতে থাকার উপভোগ করুন! :) এছাড়াও, আপনি পড়তে আকর্ষণীয় জাভাতে গল্ফ করার টিপস পেতে পারেন।
কেভিন ক্রুইজসেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.