Cipher Discussions | Algorithms | HackerRank
  • + 8 comments

    Simple code in C in O(n)

    int main() {
    
        int n,k;
        scanf("%d%d ",&n,&k);
        unsigned char s[n+k];
        scanf("%s",s);
        int arr[n];
        int res[n];
    
        for(int i = 0; i < n; i++)
        {
            arr[i] = (int)s[i]%48;
            
            if(i==0)
                res[0]=arr[0];
            else if(i<k)
                res[i]=arr[i]^arr[i-1];
            else
                res[i]=arr[i]^arr[i-1]^res[i-k];
            
            printf("%d",res[i]);
            
        }    
        return 0;
    }