Mã ngắn nhất để đảo ngược bit-khôn ngoan một chuỗi nhị phân


79

Tôi nghĩ rằng không có đủ câu hỏi dễ dàng ở đây mà người mới bắt đầu có thể thử!

Thách thức: Đưa ra chuỗi đầu vào ngẫu nhiên là 1 và 0, chẳng hạn như:

10101110101010010100010001010110101001010

Viết mã ngắn nhất tạo ra nghịch đảo bit khôn ngoan như vậy:

01010001010101101011101110101001010110101

Câu trả lời:


88

J, 5 byte

Giả sử chuỗi đầu vào là biến b.

b='0'

Điều này không làm những gì nó sẽ làm trong hầu hết các ngôn ngữ ...

Toán tử so sánh J chỉ là =( =:=.là phép gán toàn cục và cục bộ, tương ứng). Tuy nhiên, =không hoạt động như ==toán tử thông thường : nó so sánh từng mục. Hãy nhớ rằng một mảng được hình thành như thế này : 0 2 3 2 3 1 2 3 4. 2 = 0 2 3 2 3 1 2 3 4đưa ra 0 1 0 1 0 0 1 0 0ví dụ. Đây là tương tự cho một chuỗi: 'a'='abcadcadda'không chỉ trở lại 0, nó sẽ trả 1 0 0 1 0 0 1 0 0 1(Điều này có thể được ngoại suy để có nghĩa là 0với */, mà về cơ bản có nghĩa all). Trong trường hợp này tuy nhiên, hành vi này là xuất sắc, vì chúng ta muốn có một chuỗi của những người thân và số không, hoặc đúng và sai. Vì bool của J 10, điều này dẫn đến một loạt các 10(Chúng không phải là chuỗi và mọi ký tự khác ngoài 1kết quả trong 0mảng này.) Điều này không cần in: J tự động in kết quả của biểu thức. Tôi hy vọng đây là lời giải thích thỏa đáng, nếu không, xin vui lòng yêu cầu một cái gì đó chưa rõ ràng trong các ý kiến. Câu trả lời này cũng có thể là '0'&=(hoặc =&'0'), nhưng tôi cảm thấy điều đó b='0'rõ ràng hơn.


1
Tôi đã thử J. Không thể uốn cong tâm trí của tôi với nó. Đoán tôi đã không tìm thấy tài liệu tốt. Ở đây, có +1 vì là một kẻ điên.
xem

1
Và đây là lý do tại sao tôi sẽ không bao giờ sử dụng J.
Qix

2
@Qix Không thể đọc được như J, ngôn ngữ này thực sự có ý nghĩa với tôi và các ngôn ngữ khác có toán tử lấy vectơ LHS và RHS vô hướng cũng hoạt động tương tự.
hvd

1
Gì? Nó không trả về kết quả đúng, phải không? Kết quả phải là một chuỗi văn bản (không có dấu cách), nhưng với kiến ​​thức hạn chế của tôi về J, tôi nghĩ rằng điều này sẽ trả về một danh sách boolean với hình thức hiển thị là 0 1 0 1 0 ...
Adám

4
Điều này không được phép vì bạn không thể cho rằng đầu vào được lưu trữ trong một biến nhất định. =&'0'hoạt động với cùng số byte.
Esolanging Fruit

43

GolfScript , 5 byte

{1^}%

Hãy thử trực tuyến.

Làm thế nào nó hoạt động

  • GolfScript đọc toàn bộ đầu vào từ STDIN và đặt nó trên ngăn xếp dưới dạng chuỗi.

  • {}% đi qua tất cả các ký tự trong chuỗi và thực thi khối mã cho tất cả chúng.

  • 1^ tính toán OR độc quyền của các ký tự mã ASCII với 1. 1 0 0 tương ứng với mã ASCII 48, Mã 1 1 đến mã ASCII 49.

    Kể từ 48 ^ 1 = 4949 ^ 1 = 48, điều này biến 0 thành 1 và 1 thành 0.

  • Sau khi hoàn thành, GolfScript in chuỗi đã sửa đổi.


6
Chờ đã, bản golf ?
ToonAlfrink

Tôi đã giải thích sai câu hỏi của bạn. Đã sửa bây giờ.
Dennis

1
@tolos: Tôi đã chỉnh sửa câu trả lời của mình.
Dennis

5
@ToonAlfrink Các ngôn ngữ chơi gôn như GolfScript được chấp nhận trong mọi thử thách, miễn là chúng là 'mục đích chung' có nghĩa là chúng không được thiết kế cho các thử thách cụ thể.
kitcar2000

4
@ kitcar2000 Tôi nghĩ rằng anh ấy đã ngạc nhiên hơn khi một ngôn ngữ như vậy tồn tại, thay vì sốc khi ai đó dám sử dụng GolfScript trong câu hỏi về mã golf;)
Chris Cirefice

35

CJam - 4

q1f^

Mọi ký tự của xor này đều có 1.
Không giống như câu trả lời khác của CJam, tôi không cho rằng đầu vào đã có trên ngăn xếp.

Dùng thử tại http://cjam.aditsu.net/


2
Vì vậy, đó là cách bạn sử dụng f.
Dennis

@Dennis Thật vậy. Bạn có thể sử dụng diễn đàn sf để đặt câu hỏi btw :)
aditsu

30

mã máy x86 trên DOS - 14 13 11 byte

Vâng, nó đã trở nên ngắn hơn một lần nữa! Sau khi viết một giải pháp cho một thách thức không liên quan , tôi nhận thấy rằng thủ thuật tương tự có thể được áp dụng ngay cả ở đây. Vì vậy, ở đây chúng tôi đi:

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

Nhận xét lắp ráp:

    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

Giải pháp trước đây - 13 byte

Tôi nghĩ nó không ngắn hơn thế này nhiều.Thật ra, nó đã làm! Cảm ơn @ninjalj vì đã loại bỏ thêm một byte.

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

Phiên bản này có tính tương tác nâng cao ™ - sau khi chạy nó từ dòng lệnh, nó sẽ tạo ra các ký tự "đảo ngược" miễn là bạn viết các chữ số đầu vào (không được lặp lại); để thoát, chỉ cần thực hiện Ctrl-C.

Không giống như giải pháp trước đây, điều này có một số sự cố khi chạy trong DosBox - vì DosBox không hỗ trợ Ctrl-C chính xác , bạn buộc phải đóng cửa sổ DOSBox nếu bạn muốn thoát. Trong một VM với DOS 6.0, thay vào đó, nó chạy như dự định.

Nguồn NASM:

org 100h

section .text

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

Giải pháp cũ - 27 25 22 byte

Điều này chấp nhận đầu vào của nó từ dòng lệnh; chạy trơn tru như một tệp .COM trong DosBox.

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                                 |...|..|

Đầu vào NASM:

    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 cho mã có lẽ không nhiều người hiểu.
Knerd

1
xchg dx,axngắn hơn 1 byte so vớimov dl,al
ninjalj

@ninjalj: woa, cảm ơn bạn! Nó đã trở nên ngắn hơn sau khi tất cả!
Matteo Italia

26

Bash + coreutils, 8 byte

tr 01 10

Lấy đầu vào từ STDIN.


Hoặc là

sed, 8 byte

y/01/10/

2
Gần đây tôi đã tạo một thư viện / bí danh chơi gôn cho Bash github.com/professorfish/bash-shelf . bạn có thể tắt một char với điều đó:y 01 10

1
BASH có liên quan ở đâu? BASH cụ thể là gì? Mọi vỏ có thể gọi tr...
yeti

1
@yeti Không phải mọi shell đều gọi các lệnh như bash hoặc zsh. Trong một số shell, mã đó là một lỗi cú pháp
mniip

5
Có thể an toàn khi cho rằng "shell" có nghĩa là "shell tương thích POSIX" ở đây ...
FireFly

@professorfish bạn cạo sạch một char, nhưng sau đó thêm 48 bằng cách bao gồm chức năng. Làm thế nào là một chiến thắng?
Steven Penny

20

CJam , 4 byte

:~:!

Giả sử chuỗi gốc đã có trên ngăn xếp. In chuỗi đã sửa đổi.

Dùng thử trực tuyến bằng cách dán sau :

"10101110101010010100010001010110101001010":~:!

Làm thế nào nó hoạt động

  • :~đánh giá từng ký tự của chuỗi, nghĩa là nó thay thế ký tự 0 bằng số nguyên 0.

  • :!tính toán logic KHÔNG của mỗi số nguyên. Điều này biến 0 thành 1 và 1 thành 0.


19

Brainfuck ( 70 71)

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

Giải trình:

>,[>,]                       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
++++++++ [<++++++> -] tại sao không phải cái này cho 48? 8 * 6 so với 4 * 4 * 3
Cruncher

@Cruncher Đã thêm.
kitcar2000

Tại sao nó lại dài hơn? Có phải vì "sửa lỗi"?
Cruncher

1
@Cruncher Vâng, tôi đã phải sửa chữa một lỗi nơi nó sẽ ra acho 11.
kitcar2000

16

PHP - 19 byte

<?=strtr($s,[1,0]);

Vâng, không thực sự ban đầu, tôi đoán!


11

Pancake Stack , 535 byte

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 "".

Nó giả sử đầu vào được kết thúc bởi một ký tự null. Chiến lược như sau:

  • Lấy một ký tự đầu vào
  • Trừ giá trị ascii của 1nó.
  • Trừ đi điều đó từ 0(mang lại một 1nếu chúng ta có 0hoặc một 0nếu chúng ta có 1)
  • Thêm giá trị ascii của 0
  • In char.
  • Nói lại

10

C: 29

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

Hãy thử trực tuyến tại đây .

Cảm ơn đã chỉ ra thủ thuật XOR, Dennis.


8
Đơn giản hơn và ngắn hơn:i(char*s){while(*s)*s++^=1;}
edc65

1
Cảm ơn, @ edc65! Tuy nhiên, tôi sẽ không sử dụng nó, vì đó là một giải pháp lặp chứ không phải là một giải pháp đệ quy. Tôi sẽ không muốn lấy tín dụng cho nó. Điều đáng chú ý là việc thay thế bạn whilebằng forkết quả tĩnh có độ dài 28 ký tự.
millinon

6
Như bạn thích. Một giải pháp đệ quy không được yêu cầu, và theo tôi, bất cứ khi nào nó có khả năng, một giải pháp lặp lại là tốt hơn một giải pháp đệ quy. Hãy vui vẻ áp dụng cuộc gọi đệ quy này vào chuỗi 10k.
edc65

1
Vì mỗi cuộc gọi ngoại trừ cuộc gọi cuối cùng là cuộc gọi đệ quy đuôi, tôi sẽ đặt cược rằng trình biên dịch sẽ chuyển đổi nó thành một vòng lặp để sử dụng lại khung ngăn xếp.
millinon

1
@millinon Bằng chứng!
deed02392

9

Con trăn 2.7 - 34 *

Ôi cái này đầu tiên hút bao nhiêu. Khá xấu xí, cái này là. 63 ký tự.

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

Điều này là một chút tốt hơn nhưng vẫn không phải là ưa thích. 44 ký tự.

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

int(x) and 1trả về int(x)nếu nó không bằng 0 và ngược lại là Sai. Các giải pháp có thể được giảm thêm đến 36 ký tự.

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

Kể từ khi join()có một trình tạo, dấu ngoặc có thể được gỡ bỏ. 32 ký tự.

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

Và backticks có thể được sử dụng thay vì str()

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

Giảm xuống 44 từ 34 nhờ con trỏ từ @TheRare

Tìm kiếm bổ sung của một người là khó khăn trong python kể từ khi bin(-int)trả về -0bxxx do đó ở trên.


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

@TheRare Tôi đã không, cảm ơn vì điều đó :)
Bassem

1
Đối với bản ghi: zero là false và nonzero là true. Đối với bất kỳ loại chuỗi nào (danh sách, chuỗi ...) đều áp dụng quy tắc tương tự, nhưng nó được kiểm tra từ độ dài của chuỗi. Do đó '' == False'hi' == True
seequ

1
Có vẻ như bạn đã bỏ lỡ một số không gian. Ngoài ra, backticks có thể được sử dụng để thay thế repr (). ''.join(`1-int(x)`for x in'')
xem

1
Fyi, repr(x)với x <maxint bằngstr(x)
seequ

7

Perl, 9 ký tự

'y/10/01/'

Ký tự thứ 9 là cờ 'p'

Sử dụng:

$ echo '10101001' | perl -pe 'y/10/01/'

2
cũng hoạt động như một tập lệnh sed y/10/01/nhưng ngắn hơn một char vì nó không cần bất kỳ cờ nào

4
Bạn không cần trích dẫn duy nhất ở đây.
Konrad Borowski

7

Javascript ( ES6 ) 36

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

Giả sử đầu vào trong s, s.replace(/./g,x=>x^1)là 22 ký tự.
Oriol

2
Tôi thích thực sự đầu ra và đầu vào.
nderscore

@nderscore Lưu 2 ký tự:p=prompt(p().replace(/./g,x=>x^1))
Gaurang Tandon

@GaurangTandon nó sẽ phải như vậy (p=prompt)(p().replace(/./g,x=>x^1))và đó là cùng một chiều dài.
nderscore

@nderscore Tôi cũng nghĩ nó là như vậy, nhưng nó hoạt động mà không có dấu ngoặc đơn, thật lạ.
Gaurang Tandon

7

Mê cung , 6 byte

(Labyrinth mới hơn thử thách này, vì vậy câu trả lời này không cạnh tranh - dù sao đó cũng không phải là chiến thắng ...)

1,
.$@

Mã này giả định rằng STDIN chứa chỉ các chữ số (cụ thể, không có dòng mới nào).

Con trỏ lệnh (IP) bắt đầu ở góc trên bên trái đi bên phải. Trong khi có các chữ số để đọc, nó sẽ quay vòng theo một vòng chặt chẽ thông qua khối 2x2 bên trái: 1đẩy 1, ,đọc một chữ số, $XOR với 1 để chuyển bit cuối cùng, .in kết quả. IP có vòng lặp này bởi vì đỉnh của ngăn xếp là dương sau XOR, do đó nó sẽ rẽ phải. Khi chúng tôi nhấn EOF, thay vào đó ,trở lại -1. Sau đó, XOR sẽ mang lại -2và với giá trị âm này, IP rẽ trái @và chương trình kết thúc.

Giải pháp này phải tối ưu cho Labyrinth: bạn cần ,.cho vòng lặp I / O và @chấm dứt chương trình. Bạn cần ít nhất hai ký tự (ở đây 1$) để chuyển bit cuối cùng. Và bạn cần ít nhất một dòng mới cho một vòng lặp có thể được chấm dứt.

Trừ khi ... nếu chúng ta bỏ qua STDERR, tức là cho phép chấm dứt với một lỗi, chúng ta có thể lưu @và chúng ta cũng không cần bất kỳ cách nào để chuyển đổi giữa hai đường dẫn. Chúng tôi chỉ tiếp tục đọc và in cho đến khi chúng tôi vô tình cố gắng in một giá trị âm (the -2). Điều này cho phép ít nhất hai giải pháp 5 byte:

1,
.$
,_1$.


5

Mã máy Turing, 32 byte (1 trạng thái - 3 màu)

Sử dụng cú pháp bảng quy tắc theo yêu cầu của trình giả lập TM trực tuyến này. Mượn từ một bài đăng tôi đã viết cho blog người dùng Googology Wiki của tôi vài tháng trước.

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

Bạn cũng có thể kiểm tra điều này bằng cách sử dụng java này.


4

Python 2.x - 44 byte

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

Tại sao làm cho nó phức tạp, hoặc sử dụng một số biến gian lận?


Có thể lưu một số ký tự phụ như thế này : print''.join('1-int(x)'for x in'input()'). Tôi không thể nhận được các backticks trong mã nhận xét để thay thế chúng bằng '.
Willem

@willem Để tham khảo trong tương lai, bạn có thể thoát chúng bằng dấu gạch chéo ngược: `a\`b`-> a`b.
nyuszika7h

@willem Điều đó không hoạt động cho đầu vào bắt đầu bằng 0 hoặc đầu vào lớn hơn maxint (trong cơ sở 10).
xem

Cảm ơn @ nyuszika7h và đã không nghĩ về những trường hợp đó TheRare vì vậy giải pháp của bạn rất tốt
Willem

@willem Thật dễ quên những thứ như thế. :)
xem

4

R, 27 ký tự

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

Sử dụng:

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



3

TI-BASIC, 7 byte

Đây là một hàm lấy một chuỗi nhị phân (thông qua Ans) làm đầu vào và trả về đầu ra dưới dạng một chuỗi đảo ngược (không đảo ngược), như được chỉ định. Để được trợ giúp thêm, bạn có thể đọc qua danh sách ứng dụng bằng cách not(trên wiki TI-BASIC. Tôi đang sử dụng phiên bản được biên dịch vì nó nhỏ hơn:

»*r>Õ¸r

Trong hex:

BB 2A 72 3E D5 B8 72

Giải trình

»*r - Lấy chức năng nhập dưới dạng chuỗi và chuyển đổi thành danh sách

> - Danh sách ống cho các nhà khai thác tiếp theo

Õ¸r - Trả về nghịch đảo của danh sách


tất cả các không gian ở cuối là »*r>Õ¸r gì?
kitcar2000

@ kitcar2000 Rất tiếc, tôi đã từng có HEX sau đó. Nhưng sau khi tôi di chuyển nó, tôi đã quên xóa các khoảng trống ... Tôi đã thực hiện nó ngay bây giờ.
Timtech

Cần lưu ý rằng: 1. Trên máy tính, phần này được hiển thị dưới dạng expr(Ans:Returnnot(Ans; 2. Vì chuỗi không được phân tách bằng dấu phẩy và nó không bắt đầu bằng a {, nên nó sẽ đánh giá lại thành một số nguyên như 1000010011, không phải là danh sách; 3. Returnkhông hoạt động theo cách bạn đã viết nó; 4. Điều này cho đầu ra dưới dạng một danh sách, không phải là một chuỗi.
lirtosiast

3

Haskell, 22 byte

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

Tôi đã rất ngạc nhiên vì thiếu các giải pháp Haskell cho thử thách này, vì vậy đây là một. Nó đánh giá một hàm lấy một chuỗi và trả về nghịch đảo của nó.

Giải trình

Không có gì lạ mắt ở đây.

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

Befunge 93, 25 byte

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

Giả sử ngăn xếp trống và EOF đều đọc -1.

0 đẩy một \ 0 làm dấu kết thúc null

>~1+:#v_ là một vòng lặp đầu vào, nó đọc ascii, thêm 1, kiểm tra EOF + 1 = 0,

^ -1< khác trừ 1 và để lại giá trị ascii được đẩy trên ngăn xếp.

$>:#,_@ thả bản sao bổ sung của số 0 lên trên cùng của ngăn xếp, sau đó in chuỗi nhị phân từ trên xuống dưới

Nếu ngăn xếp trống đọc 0, lưu 2 byte với

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

Có thể sử dụng phiên bản khoảng 15 byte bằng thuật toán tương tự này nếu EOF = 0, nhưng tôi không có cách triển khai như vậy để kiểm tra.


3

Javascript ES6, 26 ký tự

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

3
Tại sao / \ d / g không /./g
l4m2


2

Python3, 39

Methinks Python không phải là ngôn ngữ tốt nhất cho việc này. :)

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

Nếu bạn quan tâm đến việc có một dòng mới sau đầu ra, đây là một thay thế 43 ký tự:

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

Mã sẽ hoạt động mà không end=''cần chỉ ,làm :) - trừ khi bạn quan tâm đến việc không có khoảng trống
Harry Beadle

@BritishColour, không, đó là Python2. printChức năng của Python3 yêu cầu điều chỉnh endtham số để chặn dòng mới ở cuối mỗi bản in. Ngoài ra, theo đặc điểm kỹ thuật của OP, tôi nghĩ rằng tôi quan tâm đến việc không có khoảng trống. :) Cảm ơn vì nhận xét, mặc dù!
DLosc

À, tuyệt, tôi không biết điều đó! Tôi chủ yếu làm việc trong 2.7: /
Harry Beadle

2

J - 11 ký tự

Các giá trị Boolean trong J được biểu diễn dưới dạng các số nguyên 01tất nhiên cũng là các chỉ số hợp lệ thành các mảng (trong trường hợp này là mảng 2 ký tự '01')

'01'{~'0'&=

Tôi nghĩ rằng câu trả lời này về mặt kỹ thuật chính xác hơn câu trả lời J hàng đầu, đưa ra một mảng boolean thay vì một chuỗi.
gar

Tôi thực sự đã không nhận thấy giải pháp J được xếp hạng hàng đầu khi tôi đăng (không biết làm thế nào tôi bỏ lỡ nó, nhưng tôi đã làm). Để công bằng cho giải pháp đó, nó nói rõ ràng "điều này không làm những gì các giải pháp khác làm". BTW, một cách khác để thể hiện giải pháp (đầu ra theo nghĩa đen) này trong 11 ký tự là [:, ": @ = & '' 0 ''.
Dan Bron

Xin chào, cảm ơn cho một mã khác! Tôi sẽ học thêm J từ các bạn. Về tuyên bố đó, tôi nghĩ rằng anh ta đang đề cập đến dấu bằng, rằng nó so sánh từng mục thay vì chỉ định.
gar

2

C #, 131 byte

Một chút muộn cho bữa tiệc, nhưng đây là của tôi. :)

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

2

MATLAB, 13 byte

@(x)[97-x '']

Sau khi chạy ở trên, chỉ cần gọi hàm với chuỗi đầu vào của bạn để có được chuỗi đảo ngược. Ví dụ: chạy:

ans('10101110101010010100010001010110101001010')

in:

01010001010101101011101110101001010110101

2

BotEngine , 4x8 = 32

Không soạn thảo như ngôn ngữ hoãn câu hỏi.

Iv2 0 12
 >e>S SS
    e1e0
   ^< <P

Với điểm nhấn:

nhập mô tả hình ảnh ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.