sp-arrays-and-searching

https://practice.geeksforgeeks.org/tracks/sp-arrays-and-searching/?batchId=152

Problems

Minimum indexed character Solved on Monday: 13 April 2020

t=int(input())
for i in range(t):
    s1=list(input())
    s2=list(input())
    d=0
    m=int(len(s1))
    for i in range( len(s1)):
        if s1[i] in s2:
            if (i<m):
                m=i
                ans=s1[i]
                d=1
    if d==0:
        print ("$")
    else:
        print (ans)

Boolean String Value Partially Solved on: Monday, 6th April 2020

t=int(input())
l=[]
m=[]
for i in range(t):
    s=input()
    j=1
    ans=0
    s=list(s)
    p=''
    for i in range(len(s)):
        if (s[i] == 'C'):
            s[i] = '^'
        if (s[i] == 'B'):
            s[i] = '|'
        if (s[i] == 'A'):
            s[i] = '&'
    s = eval(str(s))
    for item in s:
        p+=item
    print (p)
    print (eval(p))

Sum of two large numbers Solved on: Sunday, 5th April 2020

t=int(input())
for i in range(t):
    a, b=map(int, input().strip().split())
    if (len(str((a+b))) == len(str(a))):
        print (a+b)
    else:
        print(a)

Remove common characters and concatenate Solved on: Sunday, 5th April 2020

t=int(input())
for i in range(t):
    s1=input()
    s2=input()
    l=list(''.join(set(s1).intersection(s2)))
    for each in l:
        s1=s1.replace(each, '')
        s2=s2.replace(each, '')
    if (s1+s2 == ''):
        print (-1)
    else:
        print (s1+s2)

Find the fine Solved on: Sunday, 5th April 2020

#include <iostream>
#include <bits/stdc++.h> 
using namespace std;

int main() {
    int n, d, i, j, t, total=0;
    cin >> t;
    while (t--) {
        cin >> n >> d;
        int arr[n], fine[n];
        for (i=0;i<n;i++) {
            cin >>arr[i];
        }
        for (i=0;i<n;i++) {
            cin >>fine[i];
        }
        if (d%2==0) {
            for (j=0;j<n;j++) {
                if (arr[j]%2 != 0) {
                    total=total+fine[j];
                }
            }
        } else {
            for (j=0;j<n;j++) {
                if (arr[j]%2 == 0) {
                    total=total+fine[j];
                }
            }
        }
        cout << total << "\n";
        total=0;
    }
    return 0;
}

Count distinct elements in every window Partially Solved on: Sunday, 5th April 2020

def countDistinct(arr, N, K):
    ans=[]
    for i in range(N-K+1):
        l=[]
        for j in range(i, i+k):
            l.append(arr[j])
        l=list(set(l))
        ans.append(len(l))
    return ans
    

Sort in specific order Solved on: Saturday, 4th April 2020

#include <iostream>
#include <bits/stdc++.h> 
using namespace std;

int main() {
    int n, k, i, j, t;
    cin >> t;
    while (t--) {
        cin >> n ;
        int arr[n], ev[n]={-1}, od[n]={-1};

        for (i=0;i<n;i++) {
            cin >> arr[i];
            if (arr[i] % 2 == 0) {
                ev[i]=arr[i]; 
                od[i]=-1;
            } else {
                od[i]=arr[i];
                ev[i]=-1;
            }
        }
        
        sort(ev, ev+n);
        sort(od, od+n);

        for (j=n-1;j>=0;j--){
            if (od[j] != -1 && od[j] != 0){
                cout << od[j] << " ";
            }
        }

        for (j=0;j<n;j++){
            if (ev[j] != -1 ){
                cout << ev[j] << " ";
            }
        }
        cout << "\n";

    }
    return 0;
}

Find the closest number Solved on: Saturday, 4th April 2020

#include <iostream>
using namespace std;

int main() {
    int n, k, i, j, t;
    cin >> t;
    while (t--) {
        cin >> n >> k;
        int arr[n], b[n];

        for (i=0;i<n;i++) {
            cin >> arr[i];
            b[i] = abs(arr[i] - k);
        }

        // for (j=0;j<n;j++) {
        //     cout << b[j] << " ";
        // }
        // cout << "\n";

        int min=b[n-1], minInd=n-1;
        for (int l=0;l<n;l++) {
            if (min >= b[l]) {
                min = b[l];
                minInd = l;
            }
        }
        // cout << min << " " << minInd;
        cout << arr[minInd];
        cout << "\n";
        
    }
    return 0;
}

Print an array in Pendulum Arrangement Solved on: Saturday, 4th April 2020

#include <iostream>
#include <vector> 
#include <stdio.h>
#include <bits/stdc++.h> 

using namespace std;
 
int main() {
    int n, k, t, i, j;
    cin >> t;
    while (t--) {
        cin >> n;
        int arr[n], b[n], mid;
        for (int i=0;i<n;i++) {
            cin >> arr[i];
        }

        sort(arr, arr+n); 

        mid = (n-1)/2; 
   
        int j = 1, i = 1; 
        b[mid] = arr[0]; 
        for (i = 1; i <= mid; i++) { 
            b[mid+i] = arr[j++]; 
            b[mid-i] = arr[j++]; 
        } 
    
        if (n%2 == 0) 
            b[mid+i] = arr[j];

        for (int k=0;k<n;k++) {
            cout << b[k] << " ";
        }
        cout << "\n";

    }
    return 0;
}

Reverse an Array Solved on: Thursday, 2 April 2020

#include <iostream>
#include <vector> 

using namespace std;

int main() {
    int n, k;
    cin >> n;
    for (int x=0; x<n;x++) {
        cin >> k;
        int arr[k];
        for (int i=0;i<k;i++) {
            cin >> arr[i];
        }
        
        int start = 0;
        int end = k-1;
        while (start<=end) {
            int temp = arr[start];
            arr[start] = arr[end];
            arr[end] = temp;
            start ++;
            end --;
        }
        
        for (int j=0; j<k; j++) {
            printf("%d ", arr[j]);
        }   
        cout << "\n"; 
    }
    return 0;
}

Reverse array in group Solved on: Thursday, 2 April 2020

#include <iostream>
#include <vector> 
#include <stdio.h>

using namespace std;

int main() {
    int n, i, t, j, k, m;
    cin >> t;
    while (t--) {
        cin >> n >> k;
        int arr[n];
        for (int i=0;i<n;i++) {
            cin >> arr[i];
        }

        for (j=0;j<n;j=j+k) {
            int start = j;
            int end = min(j+k-1, n-1);
            
            while (start<=end) {
                int temp = arr[start];
                arr[start] = arr[end];
                arr[end] = temp;
                start ++;
                end --;
            }
        }

        for (int i=0;i<n;i++) {
            cout << arr[i] << " ";
        }

        cout << "\n";
    }
    return 0;
}

Kth smallest element Solved on: Thursday, 2 April 2020

#include <iostream>
#include <vector> 
#include <stdio.h>
#include <bits/stdc++.h> 

using namespace std;

int main() {
	int t, n, k, i;
	cin>>t;
	while (t--) {
	    cin >> n;
	    int arr[n];
	    for (i=0; i<n; i++) {
	        cin >> arr[i];
	    }
	    cin >> k;
	    sort (arr, arr+n);
	    cout << arr[k-1];
	    cout << "\n";
	}
	return 0;
}

Leaders in an array Solved on: Thursday, 1 April 2020

#include <iostream> 
#include <stack> 
using namespace std;

int main() {
    int n, k, j;
    cin >> n;
    stack<int> s; 
    for (int i=0;i<n;i++) {
        cin >> k;
        int arr[k];
        for (int j=0;j<k;j++) {
            cin >> arr[j];
        }
        int max=-1;
        for (int x=k-1 ; x>=0; x-- ) {
            if (arr[x] >= max) {
                s.push(arr[x]);
                max = arr[x];
            }
        }
        while(! s.empty()) {
            cout << s.top() << " ";
            s.pop();
        }
        cout << "\n";
    }

    return 0;
}

Rotate Array Solved on: Thursday, 31st March 2020

class Solution {
    public:
    void reversee(int arr[], int start, int end) {
        while (start < end) {
            swap(arr[start], arr[end]);
            start++;
            end--;
        }
    }

    void rotateArr(int arr[], int d, int n){
        d = n%d;
        if (d = 0){
            return ;
        }
        reversee(arr, 0, d-1);
        reversee(arr, d, n-1);
        reversee(arr, 0, n-1);
    }
};

Immediate Smaller Element Solved on: Thursday, 30th March 2020

n=int(input())
for i in range(n):
    k=int(input())
    arr=list(map(int,input().strip().split()))
    # print (arr)
    for i in range(k-1):
        if arr[i+1]<arr[i]:
            print (arr[i+1], end=" ")
        else:
            print ("-1", end=" ")
    print ("-1", end=" ")
    print ("")

Last updated

Was this helpful?