Posts

Showing posts from September, 2020

Karatsuba Algorithm

  Given two binary strings that represent value of two integers, find the product of two strings. For example, if the first bit string is “1100” and second bit string is “1010”, output should be 120. Input: First line consists of T test cases. Only line of every test case consists of 2 binary strings. Output: Single line output, print the multiplied value. Constraints: 1<=T<=100 1<=Length of string<=100 Example: Input: 2 1100 01 01 01 Output: 12 1 The link of this problem is  https://practice.geeksforgeeks.org/problems/karatsuba-algorithm/0 Solution(CPP): #include<iostream> using namespace std; int main() {     int t;     cin>>t;     while(t--)     {         string a;         string b;         cin>>a>>b;         stack<int> s1;         stack<int> s2;         for(int i=0;i<a.length();i++)         {             s1.push(a[i]-'0');         }         for(int i=0;i<b.length();i++)         {             s2.push(b[i]-'0');  

Longest Increasing Subsequence

Given a sequence  A  of size  N , find the  length  of the  longest increasing subsequence  from a given sequence . The longest increasing subsequence means to find a subsequence of a given sequence in which the subsequence's elements are in sorted order, lowest to highest, and in which the subsequence is as long as possible.This subsequence is not necessarily contiguous, or unique. Note:  Duplicate numbers are not counted as increasing subsequence. Input: The first line contains an integer T, depicting total number of test cases. Then following T lines contains an integer N depicting the size of array and next line followed by the value of array. Output: For each testcase, in a new line, print the Max length of the subsequence in a separate line. Constraints: 1 ≤ T ≤ 100 1 ≤ N ≤ 1000 0 ≤ A[i] ≤ 300 Example: Input : 2 16 0 8 4 12 2 10 6 14 1 9 5 13 3 11 7 15 6 5 8 3 7 9 1 Output: 6 3 Explanation: Testcase 2:  Longest increasing subsequence is of size 3 with elements (there are many