বিট-ওয়াইন বাইনারি স্ট্রিংটি বিপরীত করার জন্য সংক্ষিপ্ততম কোড


79

আমার মনে হয় এখানে পর্যাপ্ত সহজ প্রশ্ন নেই যে নতুনরা চেষ্টা করতে পারে!

চ্যালেঞ্জ: 1 এবং 0 এর একটি এলোমেলো ইনপুট স্ট্রিং দেওয়া যেমন:

10101110101010010100010001010110101001010

সংক্ষিপ্ততম কোডটি লিখুন যা বিট-ওয়াইজের বিপরীতটিকে এর চেয়ে বেশি ফল দেয়:

01010001010101101011101110101001010110101

উত্তর:


88

জে, 5 বাইট

ধরে নিই ইনপুট স্ট্রিংটি ভেরিয়েবলের মধ্যে রয়েছে b

b='0'

এটি বেশিরভাগ ভাষায় যা করে তা তা করে না ...

জে তুলনা অপারেটর কেবল =( =:এবং =.যথাক্রমে বৈশ্বিক এবং স্থানীয় কার্যনির্বাহী)। তবে, =সাধারণ ==অপারেটরের মতো কাজ করে না : এটি আইটেম বাই আইটেমের তুলনা করে। মনে রাখবেন যে একটি অ্যারের ভালো গঠিত হয় রাখবেন: 0 2 3 2 3 1 2 3 4। উদাহরণস্বরূপ 2 = 0 2 3 2 3 1 2 3 4দেয় 0 1 0 1 0 0 1 0 0। এই একটি স্ট্রিং জন্য অনুরূপ হল: 'a'='abcadcadda'শুধু ফেরত দেয় না 0, এটা ফেরৎ 1 0 0 1 0 0 1 0 0 1(এই মানে extrapolated যাবে 0সঙ্গে */, যা মূলত মানে allকিন্তু।) এই ক্ষেত্রে, এই আচরণ, excelent যেহেতু আমরা বেশী এবং zeros একটি স্ট্রিং চান, বা সত্য এবং মিথ্যা। যেহেতু জে এর bools হয় 1 এবং 0, এই একটি অ্যারের ফলাফল 1's এবং0এর (তারা স্ট্রিং নয় এবং অন্যান্য প্রতিটি চরিত্রেরও 1ফলাফল 0এই অ্যারেতে তৈরি হবে) আমি আশা করি এটি পর্যাপ্ত ব্যাখ্যা ছিল, যদি না হয় তবে দয়া করে এমন কিছু জিজ্ঞাসা করুন যা মন্তব্যে এখনও পরিষ্কার নয়। এই উত্তরটিও '0'&=(বা =&'0') হতে পারে তবে আমি অনুভব করেছি যে b='0'এটি পরিষ্কার।


1
আমি জে.কে চেষ্টা করেছি, তাতে আমার মন বাঁকতে পারি না। অনুমান করুন আমি ভাল ডকগুলি পাইনি। পাগল হওয়ার জন্য এখানে একটি +1 রাখুন।
seequ

1
এবং এই কারণেই আমি কখনই জে।
কিউস

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

1
কি? এটি সঠিক ফলাফল দেয় না, তাই না? ফলাফলটি একটি পাঠ্য স্ট্রিং (ফাঁকা জায়গা ছাড়াই) হওয়া উচিত ছিল, তবে আমার জে সম্পর্কে সীমিত জ্ঞানের সাথে আমি মনে করি এটি 0 1 0 1 0 এর ডিসপ্লে ফর্মের সাথে একটি বুলিয়ান তালিকা ফিরিয়ে দেবে ...
অ্যাডাম

4
এটি অনুমোদিত নয় কারণ আপনি অনুমান করতে পারবেন না যে ইনপুটটি একটি নির্দিষ্ট ভেরিয়েবলের মধ্যে সঞ্চয় রয়েছে। =&'0'একই সংখ্যা বাইট জন্য কাজ করে।
17'8

43

গল্ফস্ক্রিপ্ট , 5 বাইট

{1^}%

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

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

  • গল্ফস্ক্রিপ্ট STDIN এর সম্পূর্ণ ইনপুটটি পড়ে এবং স্ট্রিং হিসাবে স্ট্রিং হিসাবে রাখে।

  • {}% স্ট্রিংয়ের সমস্ত অক্ষরের মধ্য দিয়ে যায় এবং তাদের সকলের জন্য কোড ব্লক কার্যকর করে।

  • 1^ অক্ষরগুলির একচেটিয়া ওআরকে ASCII কোডটি 1 এর সাথে গণনা করে "" 0 "ASCII কোড 48," 1 "এর সাথে ASCII কোড 49 এর সাথে সম্পর্কিত।

    যেহেতু 48 ^ 1 = 49এবং 49 ^ 1 = 48, এটি 0 এর 1 এবং 1 এর 0 এ পরিণত হয়।

  • একবার শেষ হয়ে গেলে গল্ফস্ক্রিপ্ট পরিবর্তিত স্ট্রিং প্রিন্ট করে।


6
অপেক্ষা, গল্ফস্ক্রিপ্ট ?
টুনআলফ্রিংক

আমি আপনার প্রশ্নের ভুল ব্যাখ্যা দিয়েছিলাম এখনই স্থির।
ডেনিস

1
@ টলোস: আমি আমার উত্তর সম্পাদনা করেছি।
ডেনিস

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

4
@ কিটকার 2000 আমি মনে করি যে তিনি কোনও গল্ফ প্রশ্নে গল্ফস্ক্রিপ্ট ব্যবহার করার সাহস দেখানোর চেয়ে এই জাতীয় ভাষার অস্তিত্বের চেয়ে আরও অবাক হয়েছিল;)
ক্রিস সাইরাফাইস

35

সিজোম - 4

q1f^

এই সিওর প্রতিটি চরিত্রের সাথে 1. রয়েছে
। অন্যান্য সিজেএম উত্তরের মতো, আমি ধরে নিচ্ছি না যে ইনপুটটি ইতিমধ্যে স্ট্যাকের মধ্যে রয়েছে।

এটি http://cjam.aditsu.net/ এ চেষ্টা করুন


2
সুতরাং আপনি যে কিভাবে ব্যবহার f
ডেনিস

পছন্দ করুন আপনি
বিটিডব্লিউ

30

ডস-এ x86 মেশিন কোড - 14 13 11 বাইট

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

00000000  b4 08 cd 21 35 01 0a 86  c2 eb f7                 |...!5......|
0000000b

মন্তব্য সমাবেশ:

    org 100h

section .text

start:
    mov ah,8        ; start with "read character with no echo"
lop:
    ; this loop runs twice per character read; first with ah=8,
    ; so "read character with no echo", then with ah=2, so
    ; "write character"; the switch is performed by the xor below
    int 21h         ; perform syscall
    ; ah is the syscall number; xor with 0x0a changes 8 to 2 and
    ; viceversa (so, switch read <=> write)
    ; al is the read character (when we did read); xor the low
    ; bit to change 0 to 1 and reverse
    xor ax,0x0a01
    mov dl,al       ; put the read (and inverted character) in dl,
                    ; where syscall 2 looks for the character to print
    jmp lop         ; loop

পূর্ববর্তী সমাধান - 13 বাইট

আমি মনে করি এটি এর চেয়ে খুব ছোট হয় না getআসলে, এটা কি! আরও একটি বাইট শেভ করার জন্য @ নিনজালজকে ধন্যবাদ।

00000000  b4 08 cd 21 34 01 92 b4  02 cd 21 eb f3           |...!4.....!..|
0000000d

এই সংস্করণে উন্নত ইন্টারঅ্যাকটিভিটির বৈশিষ্ট্য রয়েছে - কমান্ড লাইন থেকে চালানোর পরে এটি "উল্টানো" অক্ষরগুলি ছড়িয়ে দেয় যতক্ষণ আপনি ইনপুট অঙ্কগুলি লেখেন (যা প্রতিধ্বনিত হয় না); প্রস্থান করতে, কেবল একটি Ctrl-C করুন।

পূর্ববর্তী সমাধানের বিপরীতে, ডসবক্সে চলতে কিছুটা সমস্যা রয়েছে - যেহেতু ডসবক্স সঠিকভাবে Ctrl-C সমর্থন করে না , আপনি প্রস্থান করতে চাইলে আপনাকে ডসবক্স উইন্ডোটি বন্ধ করতে বাধ্য করা হবে। পরিবর্তে ডস a.০ সহ একটি ভিএম-তে, এটি ইচ্ছাকৃতভাবে চলে।

এনএএসএম উত্স:

org 100h

section .text

start:
    mov ah,8
    int 21h
    xor al,1
    xchg dx,ax
    mov ah,2
    int 21h
    jmp start

পুরানো সমাধান - 27 25 22 বাইট

এটি কমান্ড লাইন থেকে তার ইনপুট গ্রহণ করেছে; ডসবক্সে .COM ফাইল হিসাবে সুচারুভাবে চালিত হয়।

00000000  bb 01 00 b4 02 8a 97 81  00 80 f2 01 cd 21 43 3a  |.............!C:|
00000010  1e 80 00 7c f0 c3                                 |...|..|

এনএএসএম ইনপুট:

    org 100h

section .text

start:
    mov bx, 1
    mov ah, 2
loop:
    mov dl, byte[bx+81h]
    xor dl, 1
    int 21h
    inc bx
    cmp bl, byte[80h]
    jl loop
exit:
    ret

2
কোডের জন্য +1 সম্ভবত অনেকেই বুঝতে পারেন না।
কেনার্ড

1
xchg dx,ax1 বাইটের চেয়ে ছোটmov dl,al
নিঞ্জালজ

@ নিনজালজ: ওহ, আপনাকে ধন্যবাদ! এটা তোলে হয়নি সব পরে খাটো পেতে!
মাত্তেও ইতালি

26

বাশ + কোর্টিলস, 8 বাইট

tr 01 10

STDIN থেকে ইনপুট নেয়।


অথবা

সেড, 8 বাইট

y/01/10/

2
আমি সম্প্রতি বাশ github.com / প্রোফেসরফিশ / বাশ- শেল্ফের জন্য একটি গল্ফিং গ্রন্থাগার / ওরফে সেট তৈরি করেছি । আপনি এটি দিয়ে একটি চর মুণ্ডন করতে পারেন:y 01 10

1
বাস এখানে কোথায় জড়িত? বেস নির্দিষ্ট কি? প্রতিটি শেল কল করতে পারে tr...
ইয়েতি

1
@yeti প্রতিটি শেল বাশ বা zsh এর মতো কমান্ড কল করে না। কিছু শেলের মধ্যে সেই কোডটি একাই একটি বাক্য গঠন ত্রুটি
এমনিপ

5
সম্ভবত ধরে নেওয়া নিরাপদ যে "শেল" এর অর্থ এখানে "পসিক্স-সামঞ্জস্যপূর্ণ শেল" ...
ফায়ারফ্লাই

@ প্রফেসারফিশ আপনি একটি চর শেভ করেন তবে ফাংশনটি অন্তর্ভুক্ত করে 48 যোগ করুন। এ কেমন জয়?
স্টিভেন পেনি

20

সিজেম , 4 বাইট

:~:!

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

নিম্নলিখিত কোডটি আটকে অনলাইনে চেষ্টা করুন :

"10101110101010010100010001010110101001010":~:!

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

  • :~স্ট্রিংয়ের প্রতিটি অক্ষরকে মূল্যায়ন করে, যেমন এটি 0- এর অক্ষরটি পূর্ণসংখ্য 0 এর সাথে প্রতিস্থাপন করে ।

  • :!প্রতিটি পূর্ণসংখ্যার যৌক্তিক নোট গণনা করে। এটি 0 এর 1 এবং 1 এর 0 এর মধ্যে পরিণত হয়।


19

ব্রেইনফাক ( 70 71)

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

ব্যাখ্যা:

>,[>,]                       Read characters until there are none left.
<[<]                         Return to start
>[<                          Loop as long as there are characters to invert
  +++++++[>-------<-]        Subtract 49 (ASCII value of 1)
  >[++<]                     If not 0, add 2
  +++[<++++>-]<[>>++++<<-]>> Add 48
  .                          Print
  [-]                        Set current cell to 0
>]                           Loop

1
+++++++++ [<++++++> -] 48 এর জন্য কেন নয়? 8 * 6 বনাম 4 * 4 * 3
ক্রંચার

পছন্দ করেছেন
কিটকার 2000

কেন বেশি দিন পেলেন? "বাগ ফিক্সিং" এর কারণেই কি?
ক্রাঙ্কার

1
@Cruncher হ্যাঁ, আমি একটি বাগ যেখানে এটি আউটপুট would ঠিক করতে ছিল aজন্য 11
kitcar2000


11

প্যানকেক স্ট্যাক , 532 বাইট

Put this tasty pancake on top!
[]
Put this delicious pancake on top!
[#]
Put this  pancake on top!
How about a hotcake?
If the pancake is tasty, go over to "#".
Eat all of the pancakes!
Put this supercalifragilisticexpialidociouseventhoughtheso pancake on top!
Flip the pancakes on top!
Take from the top pancakes!
Flip the pancakes on top!
Take from the top pancakes!
Put this supercalifragilisticexpialidociouseventhoughthes pancake on top!
Put the top pancakes together!
Show me a pancake!
If the pancake is tasty, go over to "".

এটি ধরে নেয় ইনপুটটি নাল অক্ষর দ্বারা সমাপ্ত হয়। কৌশলটি নিম্নরূপ:

  • ইনপুট একটি চরিত্র নিন
  • 1এটি থেকে আসকি মানটি বিয়োগ করুন ।
  • যেটি থেকে বিয়োগ করুন 0( 1আমাদের কাছে যদি একটি ফলন হয়েছে 0, বা আমাদের কাছে একটি 0ছিল 1)
  • 0এটিতে আসকি মান যুক্ত করুন
  • চর মুদ্রণ করুন।
  • পুনরাবৃত্তি

10

সি: 29

i(char*s){*s^=*s?i(s+1),1:0;}

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

ডেনিস, এক্সওআর ট্রিকটি নির্দেশ করার জন্য ধন্যবাদ।


8
সহজ ও খাটো:i(char*s){while(*s)*s++^=1;}
edc65

1
ধন্যবাদ, @ এডসি 65! যদিও আমি এটি ব্যবহার করতে যাচ্ছি না, যেহেতু এটি পুনরাবৃত্তির চেয়ে একটি পুনরাবৃত্ত সমাধান। আমি এর কৃতিত্ব নিতে চাই না। এটি লক্ষণীয় যে 28 টি অক্ষরের দৈর্ঘ্যের স্থির ফলাফলের whileসাথে আপনার প্রতিস্থাপন for
মিলিনন

6
আপনি পছন্দ হিসাবে। পুনরাবৃত্তির সমাধানটির জন্য অনুরোধ করা হয়নি, এবং আমার মতে, যে কোনও সময় এটি সম্ভাব্য, পুনরাবৃত্তির সমাধানের চেয়ে একটি পুনরাবৃত্ত সমাধান ভাল। এই পুনরাবৃত্ত কলটি 10 ​​কে স্ট্রিং এ প্রয়োগ করতে মজা করুন।
edc65

1
যেহেতু শেষটি ব্যতীত প্রতিটি কল একটি পুচ্ছ পুনরাবৃত্তি কল, আমি বাজি ধরব যে একটি সংকলক স্ট্যাক ফ্রেমটি পুনরায় ব্যবহারের জন্য এটি একটি লুপে রূপান্তর করবে।
মিলিনন

1
@ মিলিনন প্রুফ!
deed02392

9

পাইথন 2.7 - 34 *

ওহ, এই প্রথমটি কতটা চুষছে। খুব কুৎসিত, এই এক। 63 অক্ষর।

print''.join([bin(~0)[3:] if x == '0' else bin(~1)[4:] for x in ''])

এইটি কিছুটা ভাল তবে এখনও অভিনব নয়। 44 অক্ষর।

print''.join([str(int(not(int(x)))) for x in ''])

যেহেতু এটি 0 এবং অন্যথায় মিথ্যা না হলে int(x) and 1ফেরত দেয় int(x)। সমাধানটি আরও 36 টি চরকে হ্রাস করা যেতে পারে।

print''.join([str(1-int(x)) for x in ''])

যেহেতু join()কোনও জেনারেটর নেয় তাই বন্ধনীগুলি সরানো যায়। 32 অক্ষর।

print''.join(str(1-int(x))for x in'')

এবং ব্যাকটিক্স পরিবর্তে ব্যবহার করা যেতে পারে str()

print''.join(`1-int(x)`for x in'')

@TheRare এর পয়েন্টারগুলিকে 34 থেকে 44 এ কমিয়ে দেওয়া হয়েছে

এর পরিপূরক সন্ধান পাওয়া অজগরের পক্ষে কঠিন কারণ যেহেতু bin(-int)উপরেরটি -0 বিএক্সএক্সএক্সএক্স।


2
Ya'know,(int(x) and 1) == int(x)
seequ

@TheRare আমি কি না, তাও :) জন্য ধন্যবাদ
বাসেম

1
রেকর্ডের জন্য: শূন্যটি মিথ্যা এবং ননজারো সত্য। যে কোনও ধরণের সিকোয়েন্সের জন্য (তালিকা, স্ট্রিং ...) একই নিয়ম প্রযোজ্য, তবে এটি ক্রমের দৈর্ঘ্য থেকে পরীক্ষা করা হয়েছে। সুতরাং '' == Falseএবং'hi' == True
সন্ধান

1
দেখে মনে হচ্ছে আপনি কিছু জায়গা মিস করেছেন। এছাড়াও, ব্যাকটিকগুলি repr () প্রতিস্থাপন করতে ব্যবহার করা যেতে পারে। ''.join(`1-int(x)`for x in'')
seequ

1
FYI, repr(x)x এর জন্য <maxint সমান হয়str(x)
seequ


7

জাভাস্ক্রিপ্ট ( ES6 ) 36

alert(prompt().replace(/./g,x=>x^1))

ইনপুট ধরে নিচ্ছি s, s.replace(/./g,x=>x^1)22 টি অক্ষর রয়েছে।
অরিওল

2
আমি আসলে আউটপুট এবং ইনপুট পছন্দ করি।
nderscore

@ আন্ডারস্কোর 2 টি চর সংরক্ষণ করুন:p=prompt(p().replace(/./g,x=>x^1))
গৌরাঙ্গ টন্ডন

@ গৌরাংট্যান্ডন এটি হতে হবে (p=prompt)(p().replace(/./g,x=>x^1))এবং এটি একই দৈর্ঘ্য।
nderscore

@ আন্ডারস্কোর আমিও এটিকে সেভাবেই ভেবেছিলাম তবে এটি প্যারেনেসিস ছাড়াই কাজ করেছে, আশ্চর্যের সাথে।
গৌরাঙ্গ টন্ডন

7

ভোল্টেজ , 6 বাইট

(এই চ্যালেঞ্জের চেয়ে ল্যাবরেথ নতুন, তাই এই উত্তরটি প্রতিযোগিতা করে না - এটি যেভাবেই জিতেছে তা নয় ...)

1,
.$@

এই কোডটি ধরে নিয়েছে যে এসটিডিআইএন-এ কেবলমাত্র অঙ্কগুলি রয়েছে (বিশেষত, কোনও পিছনে নতুন লাইন নেই)।

উপরের বাম কোণে ডানদিকে যেতে নির্দেশ পয়েন্টার (আইপি) শুরু হয়। যখন পড়ার মতো সংখ্যা রয়েছে তখন এটি বাম-হাতের 2x2 ব্লকের মধ্য দিয়ে আঁটসাঁট করে চলে যাবে: 1একটি 1 টি চাপুন ,, একটি সংখ্যা পড়ুন, $শেষ বিটটি টগল করতে 1 দিয়ে এটি এক্সওআর করুন, .ফলাফলটি মুদ্রণ করুন। আইপি এই লুপটি গ্রহণ করে কারণ স্টোরের শীর্ষটি এক্সওআর এর পরে ইতিবাচক, যেমন এটি ডানদিকে ঘুরবে। আমরা যখন ইওএফ-তে আঘাত করি তখন পরিবর্তে ,ফিরে আসি -1। তারপরে এক্সওআর উত্পাদন করবে -2এবং এই নেতিবাচক মানের সাথে আইপি বাম দিকে ঘুরবে @এবং প্রোগ্রামটি শেষ হবে।

এই দ্রষ্টব্যটি লাইব্রের্থের জন্য অনুকূল হতে হবে: আপনার প্রয়োজন ,এবং .একটি আই / ও লুপ এবং @প্রোগ্রামটি সমাপ্ত করার জন্য। শেষ বিটটি টগল করতে আপনার কমপক্ষে দুটি অক্ষর (এখানে 1এবং $) প্রয়োজন। এবং আপনার লুপের জন্য কমপক্ষে একটি নিউলাইন প্রয়োজন যা শেষ করা যেতে পারে।

যদি না ... আমরা যদি এসটিডিআরআরকে অগ্রাহ্য করি, তবে ত্রুটি দিয়ে শেষ করার অনুমতি দিই আমরা সংরক্ষণ করতে @পারি এবং দুটি পাথের মধ্যে স্যুইচ করার কোনও উপায়ও আমাদের দরকার নেই। আমরা দুর্ঘটনাক্রমে নেতিবাচক মান (দ -2) মুদ্রণ করার চেষ্টা না করা পর্যন্ত আমরা কেবল পড়তে এবং মুদ্রণ করতে থাকি । এটি কমপক্ষে দুটি 5-বাইট সমাধানের অনুমতি দেয়:

1,
.$
,_1$.


5

ট্যুরিং মেশিন কোড, 32 বাইট (1 রাজ্য - 3 রঙ)

এই অনলাইন টিএম সিমুলেটারের প্রয়োজনীয় রুল টেবিল সিনট্যাক্স ব্যবহার করে কয়েক মাস আগে আমি আমার গুগোলজি উইকি ব্যবহারকারী ব্লগে তৈরি একটি পোস্ট থেকে ধার নিয়েছি।

0 0 1 r *
0 1 0 r *
0 _ _ * halt

আপনি এই জাভা বাস্তবায়ন ব্যবহার করে এটিও পরীক্ষা করতে পারেন


4

পাইথন 2.x - 44 বাইট

print''.join(`1-int(x)`for x in raw_input())

কেন এটিকে জটিল করে তুলুন, বা কিছু ছলছল ভেরিয়েবল ব্যবহার করবেন?


তার এই সম্ভব ভালো কিছু অতিরিক্ত অক্ষর সংরক্ষণ করতে: print''.join('1-int(x)'for x in'input()')। আমি মন্তব্য কোডে ব্যাকটিক্স পেতে পারি না তাই তাদের দ্বারা প্রতিস্থাপিত '।
উইলেম

@ উইলেম ভবিষ্যতের রেফারেন্সের জন্য, আপনি এগুলি একটি ব্যাকস্ল্যাশ দিয়ে পালাতে পারেন: `a\`b`-> a`b
nyuszika7h

@ উইলেম এটি 0 বা ইনপুট যা ম্যাক্সিন্টের চেয়ে বড় (বেস 10 এ) দিয়ে ইনপুট শুরু করতে কাজ করে না।
seequ

ধন্যবাদ @ nyuszika7h এবং এই মামলাগুলির বিষয়ে চিন্তা করেনি তাই আপনার সমাধানটি ভাল
উইলিয়াম

@ উইলিম রিয়েল এর মতো জিনিসগুলি ভুলে যাওয়া সহজ। :)
14:25

4

আর, 27 টি অক্ষর

chartr("01","10",scan(,""))

ব্যবহার:

> chartr("01","10",scan(,""))
1: 10101110101010010100010001010110101001010
2: 
Read 1 item
[1] "01010001010101101011101110101001010110101"

4

এপিএল (ডায়ালগ ইউনিকোড) , 7 বাইট এসবিসিএস

পুরো প্রোগ্রাম। স্ট্যান্ডিন প্রম্পট করে।

∊⍕¨~⍎¨⍞

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

 প্রম্পট স্টিডিন

⍎¨ প্রতিটি চরিত্র কার্যকর

~ যৌক্তিক নয়

⍕¨ প্রতিটি অক্ষর পাঠ্য হিসাবে বিন্যাস করুন

ε nlist (চেপ্টা)



3

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

এটি এমন একটি ফাংশন যা Ansইনপুট হিসাবে বাইনারি স্ট্রিং (মধ্য দিয়ে ) নেয় এবং উল্লিখিত হিসাবে উল্টানো (বিপরীত নয়) স্ট্রিং হিসাবে আউটপুট ফেরত দেয়। আরও সহায়তার জন্য, আপনি not(টিআই-বেসিক উইকির মাধ্যমে তালিকা প্রয়োগের মাধ্যমে পড়তে পারেন । আমি সংকলিত সংস্করণটি ব্যবহার করছি কারণ এটি ছোট:

»*r>Õ¸r

হেক্সে:

BB 2A 72 3E D5 B8 72

ব্যাখ্যা

»*r - স্ট্রিং হিসাবে ফাংশন ইনপুট নিন এবং তালিকায় রূপান্তর করুন

> - পাইপ পরবর্তী অপারেটরদের দেওয়া তালিকা

Õ¸r - তালিকার বিপরীতটি ফিরিয়ে দিন


শেষে সব শূন্যস্থান কি »*r>Õ¸r ?
কিচার 2000

@ কিটকার ২000 ওহো, তার পরে আমার এইচএক্স থাকত। তবে আমি এটিকে সরিয়ে দেওয়ার পরে, আমি স্পেসগুলি সরিয়ে দিতে ভুলে গিয়েছিলাম ... আমি এখন এটি করেছি।
টিমটেক

এটি লক্ষ্য করা দরকারী হবে: 1. ক্যালকুলেটরটিতে এটি প্রদর্শিত হয় expr(Ans:Returnnot(Ans; ২. কারণ স্ট্রিংটি কমা দ্বারা পৃথক নয়, এবং এটি একটি দিয়ে শুরু হয় না {, এটি 1000010011 এর মতো একটি পূর্ণসংখ্যায় উত্থিত হবে, তালিকা নয়; ৩. Returnআপনি যেভাবে লিখেছেন তা কাজ করে না; ৪. এটি স্ট্রিং নয় বরং একটি তালিকা হিসাবে আউটপুট দেয়।
lirtosiast

3

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

map(\c->"10"!!read[c])

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

ব্যাখ্যা

কিছুই এখানে অভিনব।

map(\c->             )  -- For each character c in the input string:
                  [c]   -- wrap c into a string,
              read      -- convert to integer,
        "10"!!          -- and index the string "10" with it.

3

বেফঞ্জ 93, 25 বাইট

0>~1+:#v_$>:#,_@
 ^   -1<

খালি স্ট্যাক এবং EOF উভয় -1 পড়ুন ধরে নেওয়া।

0 নাল টার্মিনেটর হিসাবে একটি \ 0 চাপায়

>~1+:#v_ এটি একটি ইনপুট লুপ, এটি এসকিআই পড়ে, 1 যোগ করে, EOF + 1 = 0 এর জন্য চেক করে,

^ -1< অন্যথায় 1 টি বিয়োগ করে স্ট্যাকের উপর চাপানো ascii মান ছেড়ে যায়।

$>:#,_@ শূন্যের অতিরিক্ত কপিটি স্ট্যাকের উপরে ফেলে দেয়, তারপরে বাইনারি স্ট্রিং শীর্ষে নীচে প্রিন্ট করে

খালি স্ট্যাক যদি 0 টি পড়ে থাকে তবে 2 বাইট দিয়ে সংরক্ষণ করুন

>~:1+#v_$>:#,_@
^   -1<

EOF = 0 থাকলে এই একই অ্যালগরিদমটি ব্যবহার করে প্রায় 15 বাইটের একটি সংস্করণ সম্ভব, তবে আমার কাছে পরীক্ষা করার মতো প্রয়োগকরণ কার্যকর নেই।


3

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

s=>s.replace(/\d/g,x=>x^1)

3
কেন / \ ডি / জি নয় /./g
l4m2


2

পাইথন 3, 39

মাইথিংস পাইথন এটির জন্য সেরা ভাষা নয়। :)

for i in input():print(1-int(i),end='')

যদি আপনি আউটপুট পরে একটি নতুন লাইন থাকার বিষয়ে চিন্তা করেন তবে এখানে একটি 43-চরিত্রের বিকল্প রয়েছে:

print(''.join("01"[i<"1"]for i in input()))

কোডটি end=''কেবল একটি ,করণ ছাড়াই কাজ করবে :) - আপনি যদি কোনও স্থান না থাকার বিষয়ে চিন্তা না করেন
হ্যারি বিডল

@ ব্রিটিশ কলর, না, এটি পাইথন 2। পাইথন 3 এর printফাংশনটির জন্য endপ্রতিটি মুদ্রণের শেষে একটি নিউলাইন দমন করতে পরামিতিটি টুইট করা দরকার । এছাড়াও, ওপির স্পেসিফিকেশন অনুসারে, আমি মনে করি যে কোনও স্থান নেই বলে আমি যত্নশীল। :) মন্তব্য করার জন্য ধন্যবাদ, যদিও!
DLosc

ওহ, শীতল, আমি জানতাম না! আমি মূলত 2.7: /
হ্যারি বিডল

2

জে - 11 টি অক্ষর

জেতে বুলিয়ান মানগুলি পূর্ণসংখ্যা হিসাবে উপস্থাপিত হয় 0এবং 1অবশ্যই কোনটি অ্যারেতে বৈধ সূচকও হয় (এই ক্ষেত্রে, 2-বর্ণের অ্যারে '01')

'01'{~'0'&=

আমি মনে করি এই উত্তরটি টেকনিক্যালি শীর্ষ জে উত্তরের তুলনায় আরও সঠিক, যা স্ট্রিংয়ের পরিবর্তে বুলিয়ান অ্যারে আউটপুট করে।
গার

আমি পোস্ট করার সময় টপ-র‌্যাঙ্কড জে সমাধানটি আসলে লক্ষ্য করিনি (আমি কীভাবে এটি মিস করেছি তা জানি না, তবে আমি কী করেছি)। এই সমাধানটির সাথে সুষ্ঠু হতে, এটি স্পষ্টতই বলে দেয় "এটি অন্যান্য সমাধানগুলি কী করে না"। বিটিডব্লিউ, 11 টি অক্ষরে এই (আক্ষরিক আউটপুট) সমাধানটি প্রকাশ করার অন্য উপায় হ'ল::, ": @ = & '' 0 ''
ড্যান ব্রন

হাই, অন্য কোডের জন্য ধন্যবাদ! আমি আপনার কাছ থেকে আরও জে শিখতে হবে। উক্ত বিবৃতি সম্পর্কে, আমি মনে করি তিনি সমান চিহ্নটি উল্লেখ করছিলেন, এটি অ্যাসাইনমেন্টের পরিবর্তে প্রতিটি আইটেমের তুলনা করে।
গার

2

সি #, 131 বাইট

পার্টিতে একটু দেরি হলেও এখানে আমার। :)

using System;class R{static void Main(string[]a){foreach(var v in a[0].ToCharArray()){Console.Write(int.Parse(v.ToString())^1);}}}

2

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

@(x)[97-x '']

উপরেরটি চালানোর পরে, উল্টানো স্ট্রিংটি পেতে কেবল আপনার ইনপুট স্ট্রিং সহ ফাংশনটি কল করুন। উদাহরণস্বরূপ চলমান:

ans('10101110101010010100010001010110101001010')

কপি করে প্রিন্ট:

01010001010101101011101110101001010110101

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