aboutsummaryrefslogtreecommitdiff
path: root/find_unique_binary_str.c
blob: e7e0541fe12fec78eb90921e44a7f461ade1704c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// 1980. Find Unique Binary String
#include "leetcode.h"

/*
 * given an array of strings 'nums' containing 'n' unique binary strings each of
 * length 'n', return a binary string of length 'n' that does not appear in
 * '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);
  int j = 0;
  for (int i = 0; i < nums_size; i++) {
    if (nums[i][i] == '0')
      ans[j++] = '1';
    else
      ans[j++] = '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
}