aboutsummaryrefslogtreecommitdiff
path: root/find_unique_binary_str.c
diff options
context:
space:
mode:
Diffstat (limited to 'find_unique_binary_str.c')
-rw-r--r--find_unique_binary_str.c27
1 files changed, 12 insertions, 15 deletions
diff --git a/find_unique_binary_str.c b/find_unique_binary_str.c
index e7e0541..533df0a 100644
--- a/find_unique_binary_str.c
+++ b/find_unique_binary_str.c
@@ -7,25 +7,22 @@
* 'nums'. if there are multiple answers, you may return any of them.
*/
-// char *findDifferentBinaryString(char **nums, int nums_size) {
-char *findDifferentBinaryString(int nums_size,
- char nums[nums_size][nums_size]) {
- char *ans = malloc(nums_size + 1);
+char *findDifferentBinaryString(char **nums, int numsSize) {
+ char *ans = (char *)malloc((numsSize + 1) * sizeof(char));
int j = 0;
- for (int i = 0; i < nums_size; i++) {
- if (nums[i][i] == '0')
- ans[j++] = '1';
- else
- ans[j++] = '0';
- }
+ for (int i = 0; i < numsSize; i++)
+ ans[j++] = nums[i][i] == '0' ? '1' : '0';
ans[j] = '\0';
return j ? ans : "";
}
int main() {
- char n1[2][2] = {{"01"}, {"10"}}, n2[2][2] = {{"00"}, {"01"}},
- n3[3][3] = {{"111"}, {"011"}, {"001"}};
- printf("%s\n", findDifferentBinaryString(2, n1)); // expect: 11
- printf("%s\n", findDifferentBinaryString(2, n2)); // expect: 11
- printf("%s\n", findDifferentBinaryString(3, n3)); // expect: 101
+ char *n1[] = {"01", "10"}, *n2[] = {"00", "01"},
+ *n3[] = {"111", "011", "001"};
+ printf("%s\n",
+ findDifferentBinaryString((char **)n1, ARRAY_SIZE(n1))); // expect: 11
+ printf("%s\n",
+ findDifferentBinaryString((char **)n2, ARRAY_SIZE(n2))); // expect: 11
+ printf("%s\n",
+ findDifferentBinaryString((char **)n3, ARRAY_SIZE(n3))); // expect: 101
}