স্ট্রিংয়ের প্রথম অক্ষরের সমস্ত উপস্থিতি পুরো স্ট্রিং থেকে সরান


24

একটি ইনপুট শুধুমাত্র অক্ষর ধারণকারী স্ট্রিং দেওয়া A-Z, a-zএবং স্পেস, (স্ট্রিং এর প্রথম অক্ষরের বড় হাতের এবং ছোট হাতের সংস্করণ সব ঘটনার অপসারণ যদি প্রথম চরিত্র Aসব সরান As এবং a, প্রথম চরিত্র যদি গুলি (স্থান) অপসারণ সমস্ত স্থান), এবং আউটপুট মুদ্রণ করুন।

উদাহরণস্বরূপ:

  • Testing Testing One Two Three -> esing esing One wo hree
  • Programming Puzzles and Code Golf -> rogramming uzzles and Code Golf
  • How much wood would a woodchuck chuck if a woodchuck could chuck wood -> ow muc wood would a woodcuck cuck if a woodcuck could cuck wood
  • {space}hello world -> helloworld
  • welcome to WATER WORLD -> elcome to ATER ORLD

এটি , বাইট জেতে সংক্ষিপ্ততম কোড!

নোট:

  • ইনপুট সর্বদা 2 বা ততোধিক বৈধ অক্ষর হবে।
  • আউটপুট কখনই খালি স্ট্রিং হবে না।

আউটপুট খালি স্ট্রিং যেখানে আমাদের কেস পরিচালনা করতে হবে? ইনপুট যদি খালি স্ট্রিং হয়?
lirtosiast

@ থমাসকওয়া আপনি ধরে নিতে পারেন আউটপুট সবসময়ই 2 বা ততোধিক অক্ষর হবে
GamrCorps

@ থমাসকওয়া এবং আউটপুট কখনই খালি হবে না
গ্যামার কর্পস

উত্তর:


9

পাইথ, 7 বাইট

-zrBhz2

এটি অনলাইনে ব্যবহার করে দেখুন: বিক্ষোভ বা পরীক্ষার স্যুট

খুশী হলাম। নতুন দ্বিখণ্ডক অপারেটর (মাত্র 8 দিনের পুরানো) একটি চর সংরক্ষণ করতে এখানে সহায়তা করে। আমি মনে করি এটিই প্রথম কোড, এটি এই বৈশিষ্ট্যটি ব্যবহার করে।

ব্যাখ্যা

-zrBhz2   implicit: z = input string
    hz    take the first character of z
  rB  2   B generates a list, containing the original char and the  
          result of r.2 applied to the char, which swaps the case
-z        remove these two chars from z and print the result 

2
ঝরঝরে, সে সম্পর্কে জানতাম না। +1
FryAmTheEggman

14

ব্রেনফাক, 219 বাইট

+[+[>+<+<]>],[<+<+>>-]>[<<[->]>[<]>-]++++[<++++++++>-]<<[[-]----[>-<----]>-<<[>+>+<<-]<,[[>+>>>+>>+>+<<<<<<<-]>>[<<+>>-]<<[>->+<<-]>[[-]+<]>[>]<<[>>+<<-]>>[<-<+>>-]<[[-]+>]>>[<]<<<<[>>>+<<<-]>>>-[>>.<<-]>>>[[-]<]<<<<<,]

(এমন টেপের প্রয়োজন হয় যা চেষ্টা করে যদি পয়েন্টারটিকে নেতিবাচক দিকে যেতে দেয় বা লুপগুলি শেষ পর্যন্ত যায় allows এছাড়াও এটিরও প্রয়োজন , করে OF

এটি আসলে খুব সহজ হতে পরিণত! এটি গল্ফযোগ্য হলে আমি অবাক হব না (বাইটগুলি কোথায় নষ্ট হতে পারে সে সম্পর্কে আমার কিছু ধারণা আছে তবে এটি প্যানেলটি বেরিয়ে আসবে কিনা তা সম্পর্কে আমি নিশ্চিত নই)। তবুও, এটি কাজ করা মোটেও চ্যালেঞ্জ ছিল না।

এই কোডটি 97 এর নীচে ASCII মান সহ সকলকে বড় হাতের অক্ষর হিসাবে বিবেচনা করে। প্রথম অক্ষরটি যদি স্থান হয় তবে এটি "ছোট হাতের স্থান" (যেমন chr(32+32), অর্থাত্) যেকোন ঘটনা সরিয়ে দেওয়ার চেষ্টা করবে@ হয় তবে এটি স্ট্রিং থেকে ) । এটি ঠিক আছে, কারণ কেবলমাত্র অক্ষর এবং ফাঁকা স্থান উপস্থিত থাকবে।

মন্তব্য সহ:

to make comments shorter: everywhere it says "fc" means "first character"

#################################### GET FC ####################################

+[+[>+<+<]>]        shortest way to get 96
                    any number above 89 and less than 97 would work because this
                    is only for figuring out if the first character is capital

,[<+<+>>-]          create two copies of the first character


### current tape: | fc | fc | 000 | 096 | ###
###      pointer:              ^          ###

########################### FIND MAX(FC MINUS 96; 0) ###########################


>[                  96 times:

  <<                  go to the cell with the first char

  [->]                if not 0: sub one and move right


  ### current tape: | fc | char being worked on | 000 | 096 | ###
  ###      pointer:                           ^ OR ^          ###      


  >[<]>               collapse the wavefunction; sync the branches

-]


### current tape: | fc | fc is lowercase ? nonzero : zero | 000 | 000 | ###
###      pointer:                                                  ^    ###

############################# GET BOTH CASES OF FC #############################

++++[<++++++++>-]   get 32 (add to uppercase character to get lowercase)

<<[                 if the character is already lowercase:

  [-]                 clear the lowercase flag

  ----[>-<----]>-     sub 64 from the cell with 32

<]

<[>+>+<<-]          add fc to the 32 or minus 32 to get both cases


### current tape: | 000 | fc | other case of fc | ###
###      pointer:    ^                            ###

###################### LOOP THROUGH REMAINING CHARACTERS #######################

<,[                 for each character:

  [>+>>>+>>+>+<<<<<<<-]
                      make four copies
                      (only 3 are strictly needed; 4th will resync a branch)

  >>                  go to the first case of fc

  [<<+>>-]<<[>->+<<-] subtract one case of fc from one copy

  >[[-]+<]            if the result is nonzero set it to 1

  >[>]<<              go to the other case of fc (and resync branches)

  [>>+<<-]>>[<-<+>>-] subtract other case of fc from other copy

  <[[-]+>]            if the result is nonzero set it to 1

  >>[<]               resync branches using extra copy

  <<<<[>>>+<<<-]>>>   add results together

  -                   subtract 1

   if the character exactly matched either case: 1 plus 0 minus 1 = 0
  if the character exactly matched neither case: 1 plus 1 minus 1 = 1
    if the character exactly matched both cases: impossible

  [                   if the result is 1:

    >>.<<               output character

    -                   set cell to 0 to kill loop

  ]

  >>>[[-]<]           clean up remaining copies

  <<<<<,              get next character; or end loop if done

]

এটি খুব বেশি গল্ফ না । সি: আমি এত পরিশ্রম করেছি ...
অ্যাডিসন ক্র্যাম্প

13

পার্ল, 13 বাইট

#!perl -p
/./,s/$&//gi

শেবাংকে এক হিসাবে গণনা করা, স্টিডিনের কাছ থেকে ইনপুট নেওয়া হয়।


নমুনা ব্যবহার

$ echo Testing Testing One Two Three | perl remove-first.pl
esing esing One wo hree

$ echo \ Testing Testing One Two Three | perl primo-remove.pl
TestingTestingOneTwoThree

খুশী হলাম। আমি ভাবছিলাম যে পার্ল কীভাবে লেখার প্রয়োজনের কারণে খারাপভাবে কাজ করবে substrতবে অবশ্যই আপনি আরও অনেক ভাল উপায় নিয়ে এসেছেন!
hobbs

কেন আপনি হ্যাশবাংকে একটি বাইট হিসাবে গণনা করেন?
জেরেজেস

স্ক্রিপ্টটি যদি অনুরোধ করা হয় তবে শেবাং লাইনটি জিরেজ করুন perl -p script.pl। কমান্ড লাইন বিকল্পগুলি কমপক্ষে এই সাইটে প্রতিটি বাইট হিসাবে প্রথাগতভাবে গণনা করা হয়।
primo

@ প্রিমো আমি দেখছি, ধন্যবাদ।
জেরেজেস

10

সিজেম, 8 বাইট

q(_32^+-

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

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

q        e# Read all input from STDIN.
 (       e# Shift out the first character.
  _32^   e# Push a copy and XOR its character code with 32.
         e#   For a letter, this swaps its case.
         e#   For a space, this pushes a null byte.
      +  e# Concatenate these two characters.
       - e# Remove all occurrences of both from the input string.

আমি মূলত সিজেএম শেখার জন্য এই চ্যালেঞ্জটি তৈরি করেছি এবং এক্সওআর জিনিসটি সম্পর্কে আমি কখনই জানতাম না!
GamrCorps

2
আমি ব্যক্তিগতভাবে এটি আশ্চর্যজনক মনে করি যে কোনও ভাষা - সম্ভবত সেড ব্যতীত - এই চ্যালেঞ্জের মধ্যে পার্লকে হারাতে পারে।
primo

@ প্রিমো - আপনি খেয়াল করেননি যে সিজেম এবং / বা পাইথ প্রায় 99% এর মধ্যে জিতেছে? পার্ল বেশ ভাল কাজ করেছেন, কেবলমাত্র গল্ফিংয়ের ভাষা হিসাবে এটি বিশেষভাবে ডিজাইন করা হয়নি considering
ড্যারেল হফম্যান

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

@ স্পার এপিএল-তে একই বিল্ট-ইন রয়েছে। ( ~যদিও এটি বলা হয় ))
ডেনিস

7

পাইথ, 8 বাইট

-zr*2hz3

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

str.titleপ্রথম অক্ষরের স্ট্রিংটিকে দু'বার রূপে রূপান্তর করতে পাইথনের পাইথের সংস্করণ ব্যবহার করে "<Upper><Lower>"। তারপরে এটি স্ট্রিংয়ের ইনপুট থেকে প্রতিটি উপাদান সরিয়ে দেয়। স্পেসগুলি সূক্ষ্মভাবে কাজ করে কারণ তারা দ্বারা প্রভাবিত হয় না str.title



5

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

এটি মজিলা-নির্দিষ্ট flagsপরামিতিগুলির উপর নির্ভর করে না ।

f=x=>x.replace(RegExp(x[0],'gi'),'')

কফিস্ক্রিপ্ট, 39 37 বাইট

একবারে এটি কফিস্ক্রিপ্টের চেয়ে জেএসে খাটো!

f=(x)->x.replace RegExp(x[0],'gi'),''

3
কমপক্ষে আমি যে ব্রাউজারগুলি চেষ্টা করেছি সেগুলিতে এটি al newচ্ছিক, তাই RegExp(x[0],'gi')কম।
নীল

4

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

একটি কমান্ড-লাইন আর্গুমেন্ট নেয় । পিএইচপি <5.4 এর জন্য সংক্ষিপ্ত উন্মুক্ত ট্যাগগুলি সক্ষম করা দরকার।

<?=str_ireplace($argv[1][0],'',$argv[1]);

1
এটি একটি ভেরিয়েবলযুক্ত ঘোষণা করে আপনি এটি সংক্ষিপ্ত করতে পারেন $argv[1]:<?=str_ireplace(($a=$argv[1])[0],'',$a);
বোনোইট এসনার্ড

3

পার্ল, 27 বাইট

এটি একটি সম্পূর্ণ প্রোগ্রাম, যদিও এটি কেবলমাত্র 2 রেজেক্সের উপর ভিত্তি করে সম্ভবত I / O এর বাইটগুলি সংরক্ষণ করতে একটি রেটিনা প্রোগ্রামে অনুলিপি করতে পারে।

$_=<>;m/(.)/;s/$1//gi;print

সম্পাদনা করুন: দেখে মনে হচ্ছে -pবিকল্পটি ব্যবহার করে ইতিমধ্যে কারও সাথে মারধর করা হয়েছে । ওহ, এবং এর $&পরিবর্তে ব্যবহার করছি $1


1
এমনকি যদি পুরো শেবাং গণনা করা হয় (অর্থাত্ একটি "সম্পূর্ণ" প্রোগ্রাম), #!perl -pএখনও তার চেয়ে দুটি বাইট কম হয় $_=<>;print
প্রিমো

@ প্রিমো আমি আমার গল্ফগুলিতে কোনও বিকল্প ব্যবহার করি নি। আমি ঠিক কি গুগল-p বিকল্পটি কী করে। সত্যিকার অর্থে এমন কোনও সম্পাদনা নেই যা আমি নিজের উত্তরটিকে কেবল আপনার অনুরূপ না করেই আমার উত্তরটিতে করতে পারি।
PhiNotPi

3

মিনকোলাং 0.9 , 23 33 বাইট

এটি কোনওভাবেই জিতবে না তবে এহ, মজাদার!

" Z"od0c`1c*-$I[odd0c`1c*-2c=?O].

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

ব্যাখ্যা

" Z"                                 Makes it easier to uppercase
    od                               Take first character of input and duplicate
      0c`1c*-                        Uppercase if needed
             $I[               ]     Loop over the input
                odd                  Take character from input and duplicate twice
                   0c`1c*-           If it's lowercase, uppercase it.
                          0c=?       Check to see if it's equal to first character
                              O      If not, output as character
                                .    Exit

(এটি কয়েকটি প্রান্ত ক্ষেত্রে ব্যর্থ হতে পারে, যেমন প্রথম অক্ষরটি যদি একটি প্রতীক হয়))


3

টেকো , 15 14 বাইট

পাঠ্য সম্পাদনা করছেন? সন্দেহ হলে, পাঠ্য সম্পাদক এবং কর্রেক্টার ব্যবহার করুন!

অনেক ট্রায়াল-এন্ড ত্রুটির পরে (বেশিরভাগ ত্রুটি), আমি মনে করি এটি সবচেয়ে সংক্ষিপ্ত জেনেরিক টেকো প্রোগ্রাম যা কাজটি করবে।

0,1XA<S^EQA$-D>

অথবা, মানব-পঠনযোগ্য আকারে

0,1XA    ! Read the first character of the string into the text area of !
         ! Q-buffer A.                                                  !
<        ! Loop,                                                        !
S^EQA$   ! searching for the text in Q-buffer A in either lowercase or  !
         ! uppercase,                                                   !
-D       ! and deleting it,                                             !
>        ! until the search fails.                                      !

$পালাবার কী প্রতিনিধিত্ব করে আর ^Eপ্রতিনিধিত্ব করে ক্রম CTRL+ + E। আপনি যে টেকো ব্যবহার করছেন তার স্বাদ অনুসারে, এটি এই এসসিআইআই বিকল্পগুলি সনাক্ত করতে পারে, বা এটি নাও পারে।

ম্যানুয়াল অনুসারে, টিইসিওর কিছু উপভাষা এই 13-বাইট সংস্করণটি স্বীকার করে (পৃথক "ফাইন্ড" এবং "মুছুন" কমান্ডের পরিবর্তে একটি অনুসন্ধান এবং মুছুন আদেশটি ব্যবহার করে):

0,1XA<FD^EQA$>

3

পিপ, 8 বাইট

aR-Xa@0x

কমান্ড-লাইন আর্গুমেন্ট হিসাবে স্ট্রিং নেয় (এটিতে ফাঁকা স্থান থাকলে উদ্ধৃতি দেওয়া দরকার)। ব্যাখ্যা:

          a gets cmdline arg; x is "" (implicit)
    a@0   First character of a
   X      Convert to regex
  -       Make regex case-insensitive
aR     x  Replace all matches of that regex in a with empty string
          Autoprint (implicit)

এই সমাধানটিতে যে কোনও মুদ্রণযোগ্য ASCII অক্ষর রয়েছে সেগুলিতে কাজ করার অতিরিক্ত বোনাস রয়েছে । ( Xঅপারেটর এমন কোনও কিছুকে ব্যাকস্ল্যাশ-পলায়ন করে যা অক্ষর নয়)



3

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

s->replace(s,Regex(s[1:1],"i"),"")

এটি একটি নামহীন ফাংশন তৈরি করে যা একটি স্ট্রিং গ্রহণ করে এবং একটি স্ট্রিং প্রদান করে। এটি ইনপুট-এর প্রথম চরিত্র থেকে কেস-সংবেদনশীল নিয়মিত অভিব্যক্তি তৈরি করে এবং এর সমস্ত উপস্থিতিকে খালি স্ট্রিংয়ের সাথে প্রতিস্থাপন করে।



2

আর, 43 বাইট

cat(gsub(substr(s,1,1),"",s<-readline(),T))

এটি একটি সম্পূর্ণ প্রোগ্রাম যা STDIN থেকে একটি লাইন পড়ে এবং পরিবর্তিত ফলাফলটি STDOUT এ লিখে।

Ungolfed:

# Read a line from STDIN
s <- readline()

# Replace all occurrences of the first character with an empty
# string, ignoring case
r <- gsub(substr(s, 1, 1), "", s, ignore.case = TRUE)

# Write the result to STDOUT
cat(r)

2

রুবি, 25 বাইট

নামবিহীন ফাংশন:

->s{s.gsub /#{s[0]}/i,""}

সম্পূর্ণ প্রোগ্রাম, 29 বাইট:

puts gets.gsub /#{$_[0]}/i,""

2

পাইথন, by১ বাইট (অনেক বেশি উপায়)

lambda x:"".join(map(lambda y:(y.lower()!=x[0].lower())*y,x))

আমি ভাবছি এটি করার আরও ভাল উপায় আছে তবে আমি এটি খুঁজে পাচ্ছি না। অপসারণ সম্পর্কে কোন ধারণা "".join(...)?


1
@ থমাসকওয়া সম্ভবত আপনার নিজের উত্তর হিসাবে এটি জমা দেওয়া উচিত; আমার জমা হিসাবে গণনা করা আমার থেকে খুব আলাদা বলে মনে হচ্ছে।
কোলে

@ থমাসকওয়া খাটো করার জন্য x[0]+x[0].swapcase()
xnor

1
@ থমাসকওয়া বা, ফ্রাইআম দ্য এজম্যানের পাইথ সলিউশন থেকে চুরি করা (x[0]*2).title()
xnor

@ এক্সন হ্যাঁ, আমি যখন খুঁজে পেয়েছি যখন কয়েক ঘন্টা আগে আমি তাদের পড়ি।
lirtosiast

lambda x:x.replace(x[0].upper(),'').replace(x[0].lower(),'')- 60 বাইট
মেগো

2

Ouroboros , 61 বাইট

আরে, এটি সি ++ এর চেয়ে কম! হা।

i..91<\64>*32*+m1(
)L!34*.(;Si.1+!24*(Y.@@.@=@.@32-=\@+2*.(yo

আওোবোরসে, প্রোগ্রামটির প্রতিটি লাইন একটি সাপকে তার পুচ্ছ মুখে দিয়ে উপস্থাপন করে। সাপের মধ্যে সিঙ্ক্রোনাইজ করার জন্য একটি ভাগ করা স্ট্যাকের সাথে, পুচ্ছের অংশগুলি খাওয়া বা পুনঃব্যবস্থাপনের মাধ্যমে নিয়ন্ত্রণ প্রবাহ সম্পন্ন হয়।

সাপ ঘ

i. ইনপুট থেকে একটি অক্ষর পড়ে এবং এটি সদৃশ। .91<\64>*32*32অক্ষরটি যদি বড় হাতের অক্ষর হয় তবে তা ঠেলে দেয় 0otherwise +ছোট অক্ষরে এবং ফাঁকা স্থান অপরিবর্তিত রেখে অক্ষরটিতে বড় অক্ষরকে ছোট হাতের অক্ষরে রূপান্তরিত করে। এগুলি সমস্ত সাপ 1 এর স্ট্যাকের সাথে সংঘটিত হয়েছে, তাই এখন আমরা mসাপ 2 প্রক্রিয়াজাতকরণের জন্য ভাগ করা স্ট্যাকের ( ) স্টুলে মানটি চাপি। অবশেষে, 1(সাপ 1 এর লেজের শেষ চরিত্রটি খায়। যেহেতু নির্দেশ নির্দেশকটি সেখানে, তাই সাপটি মারা যায়।

সাপ ঘ

)প্রথমবারের মাধ্যমে কোনও প্রভাব নেই। L!34*push কর্মের340অন্যথায় , ভাগ করা স্ট্যাক ফাঁকা থাকলে । তারপরে আমরা .ছদ্মবেশ ধারণ করি এবং (অনেকগুলি অক্ষর খাই।

  • যদি ভাগ করা স্ট্যাকটি খালি থাকে তবে এটি সাপের শেষে ডানদিকে রাখে ( এটি সবেমাত্র আমাদের মৃত্যুদন্ড কার্যকর আনে। অতএব, নিয়ন্ত্রণটি লাইনের শুরুতে ফিরে আসে, যেখানে )আমরা খেয়েছি এমন অক্ষরগুলিকে পুনরুদ্ধার করে (পূর্বে এর অতিরিক্ত কপিটি ধাক্কা দিয়েছিল 34) এবং স্ট্যাক-দৈর্ঘ্যের পরীক্ষাটি পুনরাবৃত্তি করে।
  • যদি ভাগ করা স্ট্যাকটি ফাঁকা না থাকে তবে কোনও অক্ষর খাওয়া হয় না, ';' অতিরিক্ত ড্রপ 0, এবং কার্যকর করা চালিয়ে যায়:

Siভাগ করা স্ট্যাকে স্যুইচ করে এবং অন্য একটি চরিত্রকে ইনপুট করে। অন্যথায় যদি সেই চরিত্রটি -1 / EOF হয় তবে .1+!24*ধাক্কা দেয় । অন্যতম,240( আইপি সহ 24 টি অক্ষর গিলে ফেলে এবং সাপটি মারা যায়। অন্যথায়, ফাঁসি কার্যকর হয়।

Yভবিষ্যতের ব্যবহারের জন্য 2 এর নিজস্ব স্ট্যাকের সাপ রাখতে ভাগ করা স্ট্যাকের শীর্ষস্থানীয় (আমরা কেবল যে অক্ষরটি পড়েছি) তার অনুলিপিগুলি প্রবেশ করিয়ে দেয়। তারপরে .@@.@=@.@32-=\@+2*গণনা করা হচ্ছে যে নতুন অক্ষরটি প্রথম অক্ষরের সমান বা প্রথম অক্ষর বিয়োগ 32 এর সমান, ধাক্কা2 যদি তাই হয় এবং 0না তা । আমরা সেই বহু অক্ষরটিকে .নকল করে (খাই:

  • চরিত্রগুলি যদি মিলে যায় তবে আমরা সরাসরি সাপের মাথায় ফিরে যাই, কোথায় ( আমরা কেবল খেয়েছি এবং অক্ষরটি পরবর্তী চরিত্রের সাথে এগিয়ে চলেছে এমন দুটি অক্ষরকে পুনঃস্থাপন করে।
  • যদি না হয়, আমরা y সাপ 2 এর স্ট্যাক থেকে চরিত্রটি oপিঁপড়ে ফেলি, এটি আউটপুট করব এবং তারপরে লুপ করব।

এটি কর্মে দেখুন


2

সি, 60 বাইট

n,c,d;main(){for(;read(0,&c-n,1);n=2)d-c&31&&n&&putchar(d);}

সম্পাদনা করুন: একটি বাগ ঠিক করা যার ফলে শুরুর দিকে নাল বাইটটি মুদ্রণ করা হয়েছিল


এটি কি সংকলন করে?
Abr001am

1
হ্যাঁ। এটি আমার মেশিনে সংকেত করে (সতর্কতা সহ) এবং কাজ করে। আপনি এই পৃষ্ঠায় এটি পরীক্ষা করতে পারেন: golf.shinh.org/check.rb
xsot ২

হ্যাঁ এটা করে; +1
Abr001am

2

পাইথন 2, 43

lambda s:s.translate(None,(s[0]*2).title())

এটা আমার Pyth উত্তর ভিত্তিক কিছুটা, কিন্তু এটা থেকেও ThomasKwa থেকে কিছু মতামত ও xnor এর সাথে সম্পর্কিত হচ্ছে এখানে । বেশিরভাগ পোস্ট করা কারণ আমি এই উত্তরটি বিদ্যমান থাকতে চেয়েছিলাম।


2

Vim, 30 কীস্ট্রোক

অনাথের জন্য দুঃখিত, তবে আমি কোনও ভিম ​​উত্তর ডি দেখতে পাচ্ছি না:

If<Right>xh@x.<Esc>"xy07|@x2|~0"xd7|@x0x

ব্যাখ্যা:

  1. If<Right>xh@x.<Esc>
    প্রথম চরিত্রটির চারপাশে একটি (পুনরাবৃত্ত) ম্যাক্রো লিখুন
    বাম দিকে সরানো (h ) পরবর্তী অপঠিত চরিত্রের বামে থাকতে প্রয়োজন যে
    কোনও অক্ষর যুক্ত করা (. প্রয়োজন দ্বিতীয়টি অপসারণের ক্ষেত্রে অবশ্যই ) যুক্ত করা প্রয়োজন
  2. "xy0 রেজিষ্টারে ম্যাক্রোটি অনুলিপি করুন x
  3. 7| সপ্তম চরে সরান
  4. @x থেকে ম্যাক্রো চালান x
  5. 2|~ প্রথম চরের কেসটি স্যুইচ করুন (আসলে ২ য় অবস্থানে)
  6. 0"xd7| রেজিস্টারে ম্যাক্রো কেটে দিন x
  7. @x থেকে ম্যাক্রো চালান x
  8. 0x স্থানধারককে সরান .

1
:Dআমি সবসময় ভিম আপভোট!
ডিজেএমসিএমহেম


1

টিআই-বেসিক, 164 বাইট

TI-83 + / 84 + সিরিজের গ্রাফিং ক্যালকুলেটরগুলির জন্য।

Input Str1
1→X
"sub(Str1,X,1→u
"ABCDEFGHIJKLMNOPQRSTUVWXYZ zyxwvutsrqponmlkjihgfedcba
u+sub(Ans,54-inString(Ans,u),1
For(X,2,length(Str1
If 2<inString(Ans+Str1,u
Ans+u
End
sub(Ans,3,length(Ans)-2

টিআই-বেসিক স্পষ্টতই কাজের জন্য ভুল সরঞ্জাম।

  • অক্ষর মুছে ফেলার জন্য এটির কোনও আদেশ নেই, তাই স্ট্রিংটির মধ্য দিয়ে লুপ করতে হবে এবং অক্ষরগুলি সংযোজন করা উচিত যদি সেগুলি সরিয়ে ফেলা উচিত match
  • এটি খালি স্ট্রিং সমর্থন করে না, সুতরাং আমাদের দুটি অক্ষর মুছে ফেলার সাথে স্ট্রিংটি শুরু করতে হবে, শেষের দিকে আউটপুট তৈরি করতে হবে এবং প্রথম দুটি অক্ষর কেটে ফেলতে হবে।
  • এতে কেস-চেঞ্জ কমান্ড নেই, সুতরাং আমাদের পুরো বর্ণমালা হার্ডকোড করা দরকার ...
    • দুইবার ...
    • আমি কি উল্লেখ করেছি ছোট হাতের অক্ষরগুলি টিআই-বেসিক এনকোডিংয়ে দুটি করে বাইট নেবে?

আমি ১০০% নিশ্চিত নই, তবে আমি এটিতে ছয় ঘন্টা বেশি সময় ব্যয় করেছি এবং এটি সম্ভবত সংক্ষিপ্ততম সমাধান বলে মনে হচ্ছে।

এটি অ-বড় হাতের অক্ষরের ইনপুটগুলির সাথে পরীক্ষা করতে (বা এটি আপনার ক্যালকুলেটরটিতে টাইপ করতে) বিষয়বস্তুগুলির সাথে একটি আলাদা প্রোগ্রাম তৈরি করুন AsmPrgmFDCB24DEC9এবং Asm([whatever you named it]লোয়ারকেস টাইপিং মোড সক্ষম করে এটি চালান ।



1

কমন লিস্প, 77

(princ(let((x(read-char)))(remove-if(lambda(y)(char-equal x y))(read-line))))

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


1

সি, 65 61 বাইট

main(c,v)char**v;{for(c=**++v;*++*v;**v-c&31&&putchar(**v));}

সতর্কতা সহ সংকলন। থেকে স্ট্রিং পড়ে argv[1]অনলাইন উদাহরণ


1
আপনি খাটো করতে পারেন main(int c,char**v)থেকে main(c,v)char**v;, এবং (**v-c)%32করতে **v-c&31
ডেনিস

1

সি ++, 100 99 98 বাইট

#include<ios>
int main(){for(int c,f=getchar();~(c=getchar());)tolower(c)-tolower(f)&&putchar(c);}

শুধু একটা আরো বাইট 100 অধীনে পেতে getchar()আয় -1যখন এটি প্রবাহের শেষ লেখা, যাতে কেন~ হয় forচক্র। ( ~-1 == 0)

Ungolfed

#include <ios>
int main()
{
    for (int c, f = getchar(); ~(c = getchar()); )
        tolower(c) - tolower(f) && putchar(c);
}

আপনি কি &&putchar(c)পরিবর্তে ব্যবহার করতে পারবেন না ?putchar(c):0?
নীল

@ নীল আপনাকে ধন্যবাদ, এখন আমি 100 বাইটের নিচে আছি!
জেরেজেস

@ থমাসকওয়া অবশ্যই, ধন্যবাদ।
জেরেজেস

1
আপনি কি f-c&31সি উত্তর হিসাবে করতে পারেন ?
lirtosiast

1

AppleScript, 209 201 বাইট

আমার একমাত্র সান্ত্বনা হ'ল আমি ব্রেনফাককে মারলাম beat

একটিতে সেট করুন (প্রদর্শন ডায়ালগ "" "ডিফল্ট উত্তর" ") এর পাঠ্য ফিরে এসেছে
একটি এর অক্ষরের সংখ্যাতে n সেট করুন
"" এ সেট করুন
পুনরাবৃত্তি n
যদি না হয় এর চরিত্র n = a এর অক্ষর 1 তবে ও এর অক্ষরের n ও o তে সেট করুন
n-n এ সেট করুন
শেষ
ণ

এটি কীভাবে কাজ করে তা হল যে আমি ইনপুট নেব a, এর দৈর্ঘ্য পাবো aএবং এটিকে চিহ্নিত করব nএবং একটি আউটপুট ভেরিয়েবল সেট করব o। আমি যে অক্ষরটি খুঁজে পাই তাতে কোনও ( a's character 1) এর প্রথম অক্ষর অন্তর্ভুক্ত নয় , আমি এটির সাথে সম্মতি জানাই o। চূড়ান্ত লাইন প্রিন্ট o

দ্রষ্টব্য: এটি স্বয়ংক্রিয়ভাবে সমস্ত ইউনিকোড সমর্থন করে। C:


3
My only consolation is that I beat Brainfuck.দেখে মনে হচ্ছে আমি আরও গলফ পেয়ে যাচ্ছি;)
আন্ডারগ্রাউন্ডোমোরিয়েল

1

রেটিনা , 16 বাইট

i`(.)(?<=^\1.*)

একটি পেছনের লাইনফিড সহ কোডটি সংরক্ষণ করুন এবং -sপতাকা সহ এটি চালান ।

এটি কীভাবে কাজ করে: পেছনের লাইনফিডটি এটি প্রতিস্থাপনের পর্যায়ে তোলে, যেমন প্রদত্ত রেজেক্সের কোনও ম্যাচ খালি স্ট্রিংয়ের সাথে প্রতিস্থাপন করা হয়। iকেস-অবশ মোড যা backreferences কেস-অবশ তোলে চালু করে। শেষ অবধি, রেজেক্সটি কেবল একটি একক অক্ষরকে মেলে এবং ক্যাপচার করে এবং তারপরে স্ট্রিংয়ের প্রথম অক্ষরটি একটি ব্যাকরেন্স ব্যবহার করে একই (কেস আপ) ব্যবহার করে তা পরীক্ষা করে।

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