একই জায়গায় মূলধন বজায় রেখে একটি স্ট্রিংকে বিপরীত করুন


28

এখানে লক্ষ্যটি হ'ল কেবল একটি স্ট্রিং সহ একটি স্ট্রিংকে বিপরীত করা:
একই জায়গায় মূলধনকে রাখুন।

উদাহরণ ইনপুট 1: Hello, Midnightas
উদাহরণ আউটপুট 1:SathginDim ,olleh

উদাহরণ ইনপুট 2: .Q
এক্সপ্লে আউটপুট 2:q.

বিধি :

  • STDOUT এ আউটপুট, STDIN থেকে ইনপুট
  • বিজয়ী 13 জুলাই GMT + 3 12:00 এ নির্বাচিত হবে (এক সপ্তাহ)
  • ইনপুটটিতে কেবল ASCII চিহ্ন থাকতে পারে, এমন প্রোগ্রামগুলির পক্ষে এটি আরও সহজ করে তোলে যেগুলি এমন কোনও এনকোডিং ব্যবহার করে না যেখানে ASCII বিহীন অক্ষর রয়েছে।
  • যে কোনও বিরামচিহ্ন এমন অবস্থানে শেষ হবে যেখানে উচ্চ-অক্ষরের চিঠি ছিল সেটিকে উপেক্ষা করা উচিত।

এটি কি আউটপ্রিন্টিং ছাড়া বা না? এটা কি স্ট্রিং সহ বা ছাড়া?

"যে কোনও বিরামচিহ্ন এমন অবস্থানে শেষ হবে যেখানে উচ্চ-অক্ষরের চিঠি ছিল সেটিকে উপেক্ষা করা উচিত।" , দ্বিতীয় নিয়মটি কি এই নিয়মের সাথে বেমানান নয়?
স্টেফানো সানফিলিপো

এটি নিয়মের সাথে সামঞ্জস্যপূর্ণ কারণ বিরামচিহ্নগুলির মধ্যে বড় হাতের প্রকরণ নেই।

উত্তর:


7

টিসিসি - 4 বাইট

<>ci

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

ব্যাখ্যা:

     - output is implicit in TCC
<>   - reverse string
  c  - preserve capitalization
   i - get input

9
tcc.luaচ্যালেঞ্জ পোস্ট হওয়ার আগে এই সংস্করণটি নিয়ে কি কাজ করা হয়েছিল? আপনি সম্প্রতি আরও তিনটি চ্যালেঞ্জ সমাধানের জন্য কমান্ড যুক্ত করেছেন তা দিয়ে, আমি ধরে নিই যে এটি তা হয়নি। যদি আপনার উত্তরের এমন ভাষার কোনও সংস্করণ প্রয়োজন যা চ্যালেঞ্জ পোস্ট করে, তবে আপনাকে অবশ্যই এটির শিরোনামে প্রতিদ্বন্দ্বী হিসাবে লেবেল করা উচিত । আপনি যখন লেবেল যুক্ত করবেন বা প্রমাণ দিন যে আপনার কোডটি পূর্ববর্তী সংস্করণে কাজ করেছে তখন আমি আমার ডাউনভোটটি সরিয়ে ফেলব।
ডেনিস

16

পাইথন, 71 বাইট

lambda s:''.join((z*2).title()[c.isupper()-1]for c,z in zip(s,s[::-1]))

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

-উউডের থেকে 3 বাইট, আরও 2 টির জন্য অনুপ্রেরণা।

FryAmTheEggman থেকে আরও 4 বাইট


lambda s:''.join([z.lower(),z.upper()][c.isupper()]for c,z in zip(s,s[::-1]))তিন বাইট সংক্ষিপ্ত
আরফি

1
@ রুড ধন্যবাদ! তালিকার নির্বাচনের বাইরে ফাংশন কলটি স্থানান্তর করা আরও 2 টি সঞ্চয় করে!
মেগো

2
(z*2).title()[c.isupper()-1]কাজ করা উচিত.
FryAmTheEggman

6
আপনি এর ~c.isupper()পরিবর্তে আরেকটি বাইট জিততে পারেনc.isupper()-1
লুলহুম


13

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

যেহেতু বিধিগুলি নির্দিষ্ট করে ইনপুটটি ascii হয়:

lambda s:''.join([z.lower,z.upper]['@'<c<'[']()for c,z in zip(s,s[::-1]))

সমস্ত কৃতিত্ব যদিও @ মেগোতে যায় তবে কেবল তার উত্তরটি সম্পর্কে মন্তব্য করার মতো খ্যাতি আমার ছিল না।


আপনি কি 2 বাইট পেতে '@' এবং '[' এর এসকি মান ব্যবহার করতে পারেন?
অ্যালোসডজি বলছেন মিনিকা পুনরায় ইনস্টল করুন '

দুর্ভাগ্যক্রমে না, আমাকে অর্ড (সি), পূর্ণসংখ্যা এবং স্ট্রিং তুলনাটি পাইথনে খুব ভালভাবে মোকাবেলা করতে পারে না
লুলহাম

আমি যা পেয়েছি তা অনেক সুন্দর, তবে আপনি প্রথম হন +1
19

13

পার্ল, 31 + 2 ( -lp) = 33 বাইট

এই সমাধানটি @ টন হসপেল (13 বাইট সংক্ষিপ্ততর খনি) থেকে।

s%.%(lc$&gt$&?u:l)."c chop"%eeg

তবে আপনার প্রয়োজন হবে lএবং pস্যুইচ করুন। এটি চালানোর জন্য:

perl -lpe 's%.%(lc$&gt$&?u:l)."c chop"%eeg'

5
হ্যালো, এবং পিপিসিজিতে আপনাকে স্বাগতম! এটা অসাধারণ!
নন ইনি এখানে

সত্যিই খুব সুন্দর! আমি কখনও -aঅটোস্প্লিট ব্যবহার করি নি , আমার মনে হয় অতীতেও আমি এটি বহুবার ব্যবহার করতে পারতাম! আমার এটা মনে রাখা দরকার! আমি মনে করি আপনি শুরুতে যেমনটি পেয়েছেন map...,...তার পরিবর্তে আপনি অন্য বাইট ব্যবহার করে সংরক্ষণ করতে পারেন ! :)map{...}...$F
ডম হেস্টিংস

সংক্ষিপ্ত কোড (31 + 2 বাইট):perl -lpe 's%.%(lc$&gt$&?u:l)."c chop"%eeg
টন হসপেল

বিজ্ঞপ্তি যা -aদ্বারা বোঝানো হয়েছে-F
টন হসপেল

@ টনহসপেল বাহ, আপনাকে অনেক ধন্যবাদ এবং ভালভাবে ধন্যবাদ, এটি বেশ চমৎকার একটি কোড! সম্পর্কে -a(এবং -n) বোঝানো হচ্ছে -F, আমি পার্লরুনে কিছুক্ষণ আগে এটি পড়েছিলাম, চেষ্টা করেছি, কিন্তু এটি কার্যকর হয়নি; তবে আমি এখনই এটি আবার চেষ্টা করেছি এবং এটি ঠিকঠাক কাজ করে তাই আমি অনুমান করছি যে আমি তখন কিছু ভুল করেছি। ধন্যবাদ।
দাদা

9

পাইথ, 13 11 10 9 বাইট

@ ফ্রাইআমএইজিগম্যান সম্পর্কে আমাকে স্মরণ করিয়ে দেওয়ার জন্য Vএবং অন্য একটি বাইটের জন্য @ লিকইউনকে ধন্যবাদ জানাই ।

srV_Qm!/G

এটি অনলাইন চেষ্টা করুন! এখন মোবাইলে, লিঙ্কটি কিছুটা আপডেট করে


srV_Qm!rId011
বছরের

@ ফ্রাইআমএইজিগম্যানটি সরান dএবং আপনি একটি বাইট সংরক্ষণ করেছেন।
ফাঁস নুন

srV_Qm!/Gএকটি বাইট সংরক্ষণ করা উচিত
লিকি নুন

8

পাইথন, 66 বাইট

f=lambda s,i=0:s[i:]and(s[~i]*2).title()[~('@'<s[i]<'[')]+f(s,i+1)

সূচকগুলির মাধ্যমে পুনরাবৃত্তি করে i, সামনে থেকে চরিত্রটি s[~i]এবং s[i]সামনে থেকে কেস নিয়ে । মূলধন হ'ল সংক্ষিপ্ত পরিসরে পড়ে থাকা হিসাবে পরীক্ষা করা হয় @ABC...XYZ[(_*2).title()কৌতুক থেকে FryAmTheEggman ক্রেডিট ।


5

রেটিনা , 75 67 65 বাইট

বাইট গণনাটি আইএসও 8859-1 এনকোডিং ধরেছে।

$
±·$`
O$^`\G[^·]

s{T`L`l`±.
T01`l`L`±.*·[A-Z]
±·

±(.)
$1±
·.
·

এটি অনলাইন চেষ্টা করুন! (প্রথম লাইনটি একাধিক লাইনফিড-বিচ্ছিন্ন পরীক্ষার ক্ষেত্রে একটি স্যুট সক্রিয় করে)


5

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

s=>[...t=s.toLowerCase()].reverse().map((c,i)=>s[i]==t[i]?c:c.toUpperCase()).join``

সম্পাদনা: @ এডসি 65 এর জন্য একটি বিশাল 12 বাইট সংরক্ষণ করা


।। এর => R = [... ঠ = s.toLowerCase ()] বিপরীত () মানচিত্র ((C, ঝ) => গুলি [i] = ঠ [আমি] c.toUpperCase ():? গ) .join`` -10
edc65

@ edc65 ধন্যবাদ! (দ্রষ্টব্য: r=অপ্রয়োজনীয়))
নীল

5

পাইকে, 11 10 9 বাইট

_FQo@UhAl

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

_         -   reversed(input)
 F        -  for i in ^
   o      -      o+=1
  Q @     -     input[^]
     Uh   -    ^.is_upper()+1
       Al -   [len, str.lower, str.upper, ...][^](i)
          - "".join(^)

এটি প্রথমে আমাকে একটি ত্রুটি দিয়েছে, তারপরে একই সময়ে সঠিক উত্তর। i.imgur.com/uTcH27F.png

এটি সর্বদা ঘটে, আপনি এটি বন্ধ করতে সতর্কতাগুলিকে অক্ষম করতে ক্লিক করতে পারেন।
নীল

আহা, ঠিক আছে। দুঃখিত, আমি

হতে পারে কারণ আমি একমাত্র লোক এটি ব্যবহার করছি
নীল

4

05 এ বি 1 , 19 16 15 13 বাইট

3 বাইট সংরক্ষণের জন্য এমিগিনার ধন্যবাদ !

সম্ভবত জেলি দ্বারা পরাজিত হতে হবে ... কোড:

Âuvy¹Nè.lil}?

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


S.l_v¹lRNèyiu}?1 বাইট সংক্ষিপ্ত
Emigna

@ এমিগনা বাহ ধন্যবাদ! এটা খুব চালাক।
আদনান

Âuvy¹Nè.lilë}?14. শুধু খুশি আমি একবার জন্য আপনাকে সহায়তা করতে পারে হয় :)
Emigna

@ এমিগনা এটি আশ্চর্যজনক! দ্বিখণ্ডিত খুব সুন্দর ব্যবহার :)।
আদনান

Ruvy¹Nè.lil}?আসলে। আমি দ্বিখণ্ডন ব্যবহার করিনি এবং অন্যটি সরিয়ে দিতে ভুলে গেছি। 13.
Emigna


3

জে , 30 বাইট

(={"_1 toupper@]|.@,.])tolower

অ-এএসসিআইআই সমর্থন করে না


"টুপার" "টোলভার" আপনি কি সংক্ষিপ্ত কোড কোড ব্যবহার করতে পারবেন না?
ফাঁস নুন

@ ল্যাকিয়ুন হয়তো তবে আমি সত্যিই নিশ্চিত করে বলতে পারি না
মাইল

3

ব্র্যাচল্যাগ , 28 বাইট

@lr:?z:1ac.
h@u.,@A@um~t?|h.

ব্যাখ্যা

  • প্রধান ভবিষ্যদ্বাণী:

    @lr                 Reverse the lowercase version of the Input
       :?z              Zip that reversed string with the Input
          :1a           Apply predicate 1 to each couple [char i of reverse, char i of Input]
             c.         Output is the concatenation of the result
    
  • ভবিষ্যদ্বাণী 1:

    h@u.,               Output is the uppercase version of the first char of Input
         @A@um~t?       The second char of Input is an uppercase letter
                 |      Or
                  h.    Output is the first char of Input
    

3

টিএসকিউএল, 175 বাইট

Golfed:

DECLARE @ varchar(99)='Hello, Midnightas'

,@o varchar(99)='',@i INT=0WHILE @i<LEN(@)SELECT
@i+=1,@o+=IIF(ascii(x)=ascii(lower(x)),lower(y),upper(y))FROM(SELECT
SUBSTRING(@,@i+1,1)x,SUBSTRING(@,len(@)-@i,1)y)z
PRINT @o

Ungolfed

DECLARE @ varchar(99)='Hello, Midnightas'

,@o varchar(99)=''
,@i INT=0

WHILE @i<LEN(@)
  SELECT @i+=1,@o+=IIF(ascii(x)=ascii(lower(x)),lower(y),upper(y))
  FROM
    (SELECT SUBSTRING(@,@i+1,1)x,SUBSTRING(@,len(@)-@i,1)y)z

PRINT @o

বেহালা


ইনপুট হার্ডকডিং?
বিড়াল

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

ওহ, হ্যাঁ, আমি অবশ্যই এই কথোপকথনটি একজন এসকিউএল ব্যবহারকারী (আপনি, সম্ভবত) এর আগে রেখেছিলেন remember এটি অদ্ভুত, তবে ভাল হওয়া উচিত।
বিড়াল

1
@ কেট আমাদের আগে এই কথোপকথনটি ছিল না তবে আপনি আমাকে আগে বাইট গণনা দিয়ে সহায়তা করেছিলেন
t-clausen.dk

3

আসলে, 25 বাইট

;`úíuY"ùû"E£`M@ùRZ`i@ƒ`MΣ

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

ব্যাখ্যা:

;`úíuY"ùû"E£`M@ùRZ`i@ƒ`MΣ
;                          create a copy of the input
 `úíuY"ùû"E£`M             for each character in input:
  úíuY                       0-based index in lowercase English letters, or -1 if not found, increment, boolean negate (1 if uppercase else 0)
      "ùû"E£                 `û` if the character is lowercase else `ù` (str.lower vs str.upper)
              @ùRZ         make the other copy of the input lowercase, reverse it, and zip it with the map result
                  `i@ƒ`M   for each (string, function) pair:
                   i@ƒ       flatten, swap, apply (apply the function to the string)
                        Σ  concatenate the strings

3

হাস্কেল, 83 80 75 71 বাইট

সবচেয়ে সোজা উপায় আমি ভাবতে পারি।

import Data.Char
f a|isUpper a=toUpper|1>0=toLower
zipWith f<*>reverse

তোমাদের মধ্যে পরামিতি অদলবদল তাহলে (#), kপয়েন্ট-ফ্রি স্টাইল মধ্যে পুনর্লিখিত করা যেতে পারে: k=reverse>>=zipWith(#)যে দম্পতি বাইট সংরক্ষণ :)
Flonk

দ্বিতীয় লাইন পয়েন্ট-মুক্ত হতে পারে bযেমন f a|isUpper a=toUpper|1>0=toLower, যদিও Flonk এর উন্নতি সঙ্গে এই দ্বন্দ্ব।
xnor

আপনি এক্সএনওর এর সংস্করণ ব্যবহার করতে fএবং ফ্লোনকের পুনর্লিখন kকরতে পারেন zipWith f<*>reverse
নিমি

আপনার প্যারামিটারটি অপসারণ করার দরকার নেই s?
লিন

হ্যাঁ, এবং আপনি এটি কাটা অনুমতি দেওয়া হয় k=
xnor

3

পাওয়ারশেল, 154 , 152 , 99 , 86 বাইট

আপনাকে ধন্যবাদ টিমিডি আমাকে একটি বৃহত 47 টি বাইট সংরক্ষণ করার জন্য (আমি অতিরিক্ত 6 টিও সংরক্ষণ করেছি)

অতিরিক্ত 13 বাইট সংরক্ষণ করার জন্য আপনাকে @ টেসেল্ল্যাটিংহেকলারের ধন্যবাদ।

সর্বশেষ:

param($a)-join($a[$a.length..0]|%{("$_".ToLower(),"$_".ToUpper())[$a[$i++]-in65..90]})

মূল:

param($a);$x=0;(($a[-1..-$a.length])|%{$_=$_.tostring().tolower();if([regex]::matches($a,"[A-Z]").index-contains$x){$_.toupper()}else{$_};$x++})-join''

সাধারণ বিন্যাস:

সর্বশেষ (আমার মতে দুটি লাইন হিসাবে সেরা দেখাচ্ছে):

param($a)
-join($a[$a.length..0] | %{("$_".ToLower(), "$_".ToUpper())[$a[$i++] -in 65..90]})

ব্যাখ্যা:

param($a)-join($a[$a.length..0]|%{("$_".ToLower(),"$_".ToUpper())[$a[$i++]-in65..90]})
param($a)
# Sets the first passed parameter to variable $a
         -join(                                                                      )
# Converts a char array to a string
               $a[$a.length..0]
# Reverses $a as a char array
                               |%{                                                  }
# Shorthand pipe to foreach loop
                                  ("$_".ToLower(),"$_".ToUpper())
# Creates an array of the looped char in lower and upper cases
                                                                 [$a[$i++]-in65..90]
# Resolves to 1 if the current index of $a is upper, which would output "$_".ToUpper() which is index 1 of the previous array

মূল:

param($a)
$x = 0
(($a[-1..-$a.length]) | %{
    $_ = $_.tostring().tolower()
    if([regex]::matches($a,"[A-Z]").index -contains $x){
            $_.toupper()
        }else{
            $_
        }
        $x++
    }
) -join ''

এখানে প্রথমবারের পোস্টারটি উত্সাহিত হয়েছিল কারণ আমি খুব কমই পাওয়ারশেল দেখি, তবে 154 152 বাইটে এটি দেখতে পেলাম কেন!কোন পরামর্শ প্রশংসা।

আমি শিখেছি যে আমাকে অবশ্যই কোডিং এবং এর মজাদার মধ্যে গল্ফের জন্য আমার চিন্তাভাবনার পদ্ধতিটি পুরোপুরি পরিবর্তন করতে হবে!


হ্যালো, এবং পিপিসিজিতে আপনাকে স্বাগতম! এটা অসাধারণ!
নন ইনি এখানে

পিপিসিজিতে আপনাকে স্বাগতম! আশেপাশে অন্য একটি পাওয়ারশেল ব্যবহারকারী দেখে ভাল লাগল। আপনি .tostring()কোটগুলির সাথে প্রতিস্থাপন করে এবং রেজেক্সের পরিবর্তে ASCII পূর্ণসংখ্যার হেরফের ব্যবহার করে বেশ কিছুটা কাটতে পারেন । 105 বাইটের জন্য নিম্নলিখিতটি ব্যবহার করে দেখুন - param($a)-join($a[$a.length..0]|%{if(($x=$a[$i++])-le90-and$x-ge65){"$_".ToUpper()}else{"$_".ToLower()}})
অ্যাডমবর্কবার্ক

উজ্জ্বল! আমরা -লে এবং-গের পরিবর্তে একটি ব্যাপ্তি ব্যবহার করে আরও ছোট করে তুলতে পারি:param($a)-join($a[$a.length..0]|%{if(65..90-contains$a[$i++]){"$_".ToUpper()}else{"$_".ToLower()}})
ThePoShWolf

X-inYতুলনায় খাটো Y-containsX, এবং আপনি আপনার পরিবর্তন করতে পারেন ifজন্য জাল তিন অপারেটর পেতে 86 বাইট -param($a)-join($a[$a.length..0]|%{("$_".ToLower(),"$_".ToUpper())[$a[$i++]-in65..90]})
TessellatingHeckler

মনুষ্য, আমার মনে হচ্ছে আমি এর আগে প্রচলিত কোডগুলি কখনও গল্ফ করে না থাকার অনেক কৌশল অবজ্ঞা করেছি। এটি প্রায় আবার কোড শেখার মত!
ThePoShWolf 15

2

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

⌽f¨⍨⊢≠f←819⌶

819⌶ কেস ভাঁজ ফাংশন

f←কারণ এটির নাম দীর্ঘ, আমরা এটিকে

⊢≠f বুলিয়ান যেখানে পাঠ্য নিম্ন-বর্ণিত পাঠ্য থেকে পৃথক

f¨⍨ প্রতিটি অক্ষর ভাঁজ করতে (1 টি বড় হাতের অক্ষর, 0 মানে ছোট হাতের অক্ষর) ব্যবহার করুন ...

... বিপরীত পাঠ্য

ইউনিকোড কনসোর্টিয়ামের নিয়ম অনুযায়ী নন-এএসসিআইআই পরিচালনা করে।



2

র‌্যাকেট, 146 বাইট

(λ(s)(build-string(string-length s)(λ(n)((if(char-upper-case?(string-ref s n))char-upcase char-downcase)(list-ref(reverse(string->list s))n)))))

পুরো "গল্ফিং" জিনিসটিতে র্যাকেটটি খারাপ।

শ্রাগ সর্বদা হিসাবে, এটি সংক্ষিপ্তকরণের সাথে যে কোনও সহায়তা করা অনেক প্রশংসিত হবে।



2

জल्फ, 21 বাইট

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

Μid?&γ._pXiS=pxHHpxγγ

ব্যাখ্যা

Μid?&γ._pXiS=pxHHpxγγ
Μid                   (Μ)ap (i)nput with (d)is fucntion:
   ?        =pxHH     (H is current element) if H = lowercase(H)
    &γ._pXiS          and set γ to the uppercase entity in the reversed string
                 pxγ  lowercase γ
                    γ else, return γ

(d)is function... গল্ফের খাতিরে কোরবানি বানান!
স্টিভেন এইচ।


2

সি #, 86 85 বাইট

s=>string.Concat(s.Reverse().Select((c,i)=>s[i]>96?char.ToLower(c):char.ToUpper(c)));

এসি # ল্যাম্বদা যেখানে ইনপুট এবং আউটপুট একটি স্ট্রিং। আপনি এটি নেটফিডেলে চেষ্টা করতে পারেন ।


আমি বুঝতে পারছি কেন আমি রূপান্তর করতে অর্জন সংগ্রাম করছি char.ToLower(c)করার c+32। আমি এটি ঠিক করতে আশা করি!

12 বাইটস সংরক্ষণ করেছেন @ পিটারটেলরকে ধন্যবাদ ( c|3232 এর ascii মান যোগ করতে cএবংc&~32 32 টি বিয়োগ করতে)) ফলাফলটি হবে 72 বাইট (তবে আলফা চরের ক্ষেত্রে ব্যর্থ হতে পারে)।

s=>string.Join("",s.Reverse().Select((c,i)=>(char)(s[i]>96?c|32:c&~32)));

1
এটি c|32পরিবর্তে c+32হবে, তবে এটি অ-আলফা অক্ষরের সাথে কাজ করবে না।
পিটার টেলর

@ পিটারটেলর এটি দুর্দান্ত কাজ করে! ধন্যবাদ!
অ্যালোইসডজি বলেছেন মিনিকার পুনর্নির্মাণ

1

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

$s=$argv[1];$l=strrev($s);for($i=0;$i<strlen($s);++$i){echo(strtolower($s[$i])!==$s[$i]?strtoupper($l[$i]):strtolower($l[$i]));}

আমি এটি আরও অনুকূল করার চেষ্টা করতে পারি তবে আমি এখনকার মতো এটি ছেড়ে দেব।


1

অক্টাভ, 51 50 বাইট

@(s)merge(isupper(s),b=flip(toupper(s)),tolower(b))

@(s)merge(s>64&s<91,b=flip(toupper(s)),tolower(b))

1

ভিআইএম, 46 বাইট

এটি g~Gস্ট্রিডন থেকে পড়া বা স্টাডআউটে লেখার দরকার না থাকলে এটি তিনটি বাইট হতে পারে তবে ওহ ভাল ...

vim -es '+normal! g~G' '+%print|q!' /dev/stdin

এটি পরীক্ষা করতে, চালান

echo "testString" | vim -es '+normal! g~G' '+%print|q!' /dev/stdin

এটি এখানে আমার প্রথম জমা, নিশ্চিত নয় যে এই ধরণের জমা গ্রহণযোগ্য কিনা।


খুব ভাল, আমি ভিমে গল্ফ করা ভালবাসি! যাইহোক, এই প্রোগ্রামটি আসলে স্ট্রিংটিকে বিপরীত করে না, এটি কেবল মূলধনকে টগল করে। আপনি স্ট্রিংটি এর সাথে বিপরীত করতে পারেন :se ri<cr>C<C-r>"তবে তারপরে আপনাকে কীভাবে সঠিক অক্ষরগুলি মূলধন করতে হবে তা নির্ধারণ করতে হবে।
ডিজেএমসিএমহেম

Dড্রগ্রাইনএগ্রসএন্ডআরনম্যান ওহে মানুষ আমি পুরোপুরি মিস করেছি! অঙ্কন বোর্ড ফিরে!
ডুউইউইভেনকোডব্রো

1

জাভাস্ক্রিপ্ট (বাইরের গ্রন্থাগার ব্যবহার করে) (224 বাইট)

(s)=>{t=_.From(s);var cnt=t.Count();var caps=t.Select(x=>{return x.toUpperCase()===x&&x.toLowerCase()!==x}).ToArray(),i=-1;return t.AggregateRight((a,b)=>{i++;var c=caps[i];return c?a+b.toUpperCase():a+b.toLowerCase()},"");}

দাবি অস্বীকার: জাভাস্ক্রিপ্টে সি # এর লিনকিউ আনতে আমি একটি লাইব্রেরি ব্যবহার করেছি

ছবি 1


কোনও ব্যাখ্যা ছাড়াই যাকে এটিকে হ্রাস করা হয়েছে তাকে ডেকে আনা হচ্ছে। তার কোনও কারণ?
Applejacks01

সম্ভবত বাহ্যিক লাইব্রেরি ব্যবহার সম্পূর্ণ মানক নীতির সীমার মধ্যে থাকা সত্ত্বেও সম্ভবত তারা আপনারও গ্রন্থাগারটি গণনা করতে চেয়েছিল likely
অ্যাডিসন ক্রম্প

1
আমি ডাউনভোটার নই, তবে আপনি যদি কোনও বাহ্যিক গ্রন্থাগার ব্যবহার করছেন তবে কমপক্ষে আপনার উত্তরে নামটি উল্লেখ করুন এবং একটি অস্পষ্ট লাইব্রেরির জন্য, দয়া করে সংগ্রহস্থলের একটি লিঙ্ক সরবরাহ করুন।
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

1

সেড, 113 + 1 = 114 বাইট

কেন? কারণ জিনিসগুলি করতে ভুল সরঞ্জামটি ব্যবহার করা মজাদার : পি

ব্যবহার: চালান sed -rf file, পাঠ্য প্রবেশ করুন এবং Ctrl+ D(ইওএফ প্রেরণ করুন) টিপুন ।

Golfed:

s/[A-Z]/\a\l&/g;s/^.*$/\f&\v/;:x;s/\f\a/\a\f/;s/\a\v/\v\a/;s/\f(.)(.*)(.)\v/\3\f\2\v\1/;tx;s/\f|\v//g;s/\a./\U&/g

Ungolfed:

s/[A-Z]/\a\l&/g #Prepend all upper-case letters with a 
                #BEL ASCII character and make them lowercase
s/^.*$/\f&\v/   #Wrap text between a from feed (\f) and a vertical tab (\v)
                #These are used as markers

:x #Define a label named x

s/\f\a/\a\f/;s/\a\v/\v\a/ #Move BEL characters outside of the boundary, so they're not moved later
s/\f(.)(.*)(.)\v/\3\2\1/  #This part does the switching itself
                          #It grabs a character preceded by a form feed and another 
                          #one followed by a vertical tab and swaps them, while keeping the text in-between
                          #and replaces the marker \f and \v

tx             #Conditional jump (t) to label x
               #Jumps to the label x if the last substitution (s command) was successful 
s/\f|\v//g     #Delete markers
s/\a(.)/\u\1/g #Make letters preceded by a BEL upper-case

1

জাভা 7, 221 217 180 বাইট

void c(char[]s){int x=0,y=s.length-1;for(char t;x<y;s[x]=s(t,s[y]),s[y]=s(s[y],t),x++,y--)t=s[x];}char s(char a,char b){return(char)(64<a&a<91?96<b&b<123?b-32:b:64<b&b<91?b+32:b);}

@ লিকুউন এর পদ্ধতির জন্য প্রচুর পরিমাণে বাইটস সংরক্ষণ করা হয়েছে ।

অবহেলিত ও পরীক্ষার কেস:

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

class Main{
  void c(char[] s){
    int x = 0,
        y = s.length-1;
    for(char t; x < y; s[x] = s(t, s[y]),
                       s[y] = s(s[y], t),
                       x++,
                       y--){
       t = s[x];
    }
  }

  char s(char a, char b){
    return (char)(64 < a & a < 91
                    ? 96 < b & b < 123
                        ? b-32
                        : b
                    : 64 < b & b < 91
                        ? b+32
                        : b);
  }

  public static void main(String[] a){
    print("Hello, Midnightas");
    print("TEST");
    print("test");
    print("Test");
    print(".,..,,!@");
    print("ABCDefgHijklMNOPqrsTuVWxyz");
    print("AbCdEfGHIJKlmnop123");
  }

  static void print(String s){
    char[] t = s.toCharArray();
    c(t);
    System.out.println(t);
  }
}

আউটপুট:

SathginDim ,olleh
q.
TSET
tset
Tset
@!,,..,.
ZYXWvutSrqpoNMLKjihGfEDcba
321pOnMLKJIhgfedcba

আপনি ইনপুট এবং আউটপুট করতে পারেন char[]
ফাঁস নুন

@ ল্যাকইনুন আসলে আমি (বিশ্বাস করি) কম পরিমাণ বাইট নিতে পারি না। এটি মুছে ফেলার অনুমতি দেয় String a="";এবং বাইটগুলি সংরক্ষণ o+=করতে পরিবর্তিত হয় 0[i]=, তবে জাভাতে কোনও চরিত্র .toUpperCase()/ .toLowerCase()পদ্ধতি নেই এবং চর থেকে স্ট্রিংয়ে রূপান্তর করা, উপরের / নীচের পদ্ধতিটি ব্যবহার করুন এবং তারপরে আবার চারে ফিরে আরও অনেক কিছুর প্রয়োজন পড়বে বাইট। তবে সংযুক্ত আইডিয়োনে কাঁটা নির্দ্বিধায় এবং char[]কম বাইটে কাজ করার জন্য কিছু নিয়ে আসুন with
কেভিন ক্রুইজসেন

1
180 বাইট যা আরও গল্ফ করা যায় (এটি জায়গায় পরিবর্তন না করে)।
ফাঁস নুন

0

সি

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[])
{
  char *a,*b,*c;

  a=c=strdup(argv[1]);
  b=&argv[1][strlen(a)-1];
  for(;*a;a++,b--){
    *a=(*a>='A'&&*a<='Z')?((*b>='a'&&*b<='z')?*b-32:*b):((*b>='A'&&*b<='Z')?*b+32:*b);
  }
  puts(c);
  free(c);
  return 0;
}

স্টিডিনের কাছ থেকে ইনপুট নেওয়া উচিত।
আনমল সিং জাগি

এটি কোড-গল্ফ হওয়ায় এই প্রোগ্রামটির ব্যয় হবে এমন সংখ্যাটি দয়া করে রাখুন।

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