he-011
1.000
Challenge · difficulty 2/5
# HumanEval/11
Implement a file **`solution.py`** that completes the function below. Keep the given name and signature; your file must define it at module level.
```python
from typing import List
def string_xor(a: str, b: str) -> str:
""" Input are two strings a and b consisting only of 1s and 0s.
Perform binary XOR on these inputs and return result also as a string.
>>> string_xor('010', '110')
'100'
"""
```
<!-- imported from OpenAI HumanEval (HumanEval/11) -->
tests/test_he_011.py
# Auto-generated from OpenAI HumanEval HumanEval/11. Do not edit by hand.
from solution import * # noqa: F401,F403 (prompt helpers may be referenced by tests)
from solution import string_xor as candidate
METADATA = {
'author': 'jt',
'dataset': 'test'
}
def check(candidate):
assert candidate('111000', '101010') == '010010'
assert candidate('1', '1') == '0'
assert candidate('0101', '0000') == '0101'
def test_he_011():
check(candidate)
System prompt
You are an expert programmer. Solve the task exactly as specified. Output your solution as fenced code blocks using the required file name(s) and the exact function/type signatures requested. Prefer correctness; do not include prose outside code unless asked.Proposed solution
Looking at this problem, I need to implement a function that performs XOR operation on two binary strings.
Let me break down what's needed:
1. Take two strings `a` and `b` containing only '0' and '1' characters
2. Perform bitwise XOR operation on them
3. Return the result as a string
For XOR operation:
- 0 XOR 0 = 0
- 0 XOR 1 = 1
- 1 XOR 0 = 1
- 1 XOR 1 = 0
I'll iterate through both strings character by character and apply XOR logic.
```python
from typing import List
def string_xor(a: str, b: str) -> str:
""" Input are two strings a and b consisting only of 1s and 0s.
Perform binary XOR on these inputs and return result also as a string.
>>> string_xor('010', '110')
'100'
"""
result = ""
for i in range(len(a)):
if a[i] == b[i]:
result += "0"
else:
result += "1"
return result
```Test output (stdout)
. [100%]
1 passed in 0.01s