Skip to main content

String Analgm

 Q.String Analgm

 

 

Sol :

 

#include<iostream>
#include<vector>
#include<string>
using namespace std;
#define NO_OF_CHARS 256



bool areAnagram(string str1,string str2){
// Create 2 count arrays and initialize all values as 0
    int count1[NO_OF_CHARS] = { 0 };
    int count2[NO_OF_CHARS] = { 0 };
    int i;

    // For each character in input strings, increment count in
    // the corresponding count array
    for (i = 0; str1[i] && str2[i]; i++) {
        count1[str1[i]]++;
        count2[str2[i]]++;
    }

    // If both strings are of different length. Removing this
    // condition will make the program fail for strings like
    // "aaca" and "aca"
    if (str1[i] || str2[i])
        return false;

    // Compare count arrays
    for (i = 0; i < NO_OF_CHARS; i++)
        if (count1[i] != count2[i])
            return false;

    return true;
}

vector<int> stringAnalgm(vector<string> dictionary,vector<string> query){
vector<int> sizeAnalgm;
string dicTest;
string queryTest;
bool check;
int match;
for(int i=0;i<query.size();i++){
        match=0;
        queryTest=query[i];
       //cout<<"i : "<<queryTest<<endl;
    for(int j=0; j<dictionary.size();j++){
        dicTest=dictionary[j];
        //cout<<"j : "<<dicTest<<endl;
        if(queryTest.size()==dicTest.size()){
         //   cout<<queryTest<<" = "<<dicTest<<endl;
              check=areAnagram(queryTest,dicTest);
              if(check){
                ++match;
              }
        }
    }
    sizeAnalgm.push_back(match);
}

return sizeAnalgm;
}


int main(){

int dicSize,querySize;

cout<<"Enter the size of dictionary : ";
cin>>dicSize;

vector<string> dictionary;
cout<<"Enter the element on dictionary\n";
string data;
for(int i=0;i<dicSize;i++){
   cin>>data;
   dictionary.push_back(data);
}

cout<<"Enter the size of query : ";
cin>>querySize;

vector<string> query;
cout<<"Enter the element on query\n";
for(int i=0;i<querySize;i++){
   cin>>data;
   query.push_back(data);
}

vector<int> result=stringAnalgm(dictionary,query);

for(int i=0;i<result.size();i++){
    cout<<result[i]<<endl;
}

return 0;
}
 

Comments

Popular posts from this blog

Sum of Digit is Pallindrome or not

  Sum of Digit is Pallindrome or not Given a number N.Find if the digit sum(or sum of digits) of N is a Palindrome number or not. Note:A Palindrome number is a number which stays the same when reversed.Example- 121,131,7 etc. Example 1: Input: N=56 Output: 1 Explanation: The digit sum of 56 is 5+6=11. Since, 11 is a palindrome number.Thus, answer is 1. Example 2: Input: N=98 Output: 0 Explanation: The digit sum of 98 is 9+8=17. Since 17 is not a palindrome,thus, answer is 0. Your Task: You don't need to read input or print aything.Your Task is to complete the function isDigitSumPalindrome() which takes a number N as input parameter and returns 1 if the Digit sum of N is a palindrome.Otherwise it returns 0. Expected Time Complexi...

Menu with 5 option & selected option should appear in text box

Q6. Create a menu with 5 options and selected option should appear in text box. Android Program : Activity_main.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:id="@+id/activity_main"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:paddingBottom="@dimen/activity_vertical_margin"     android:paddingLeft="@dimen/activity_horizontal_margin"     android:paddingRight="@dimen/activity_horizontal_margin"     android:paddingTop="@dimen/activity_vertical_margin"     tools:context="com.kishanhaldar.program6.MainActivity">                 ...

Closest Number

Closest Number Basic Accuracy: 11.21% Submissions: 1615 Points: 1 Given non-zero two integers N and M . The problem is to find the number closest to N and divisible by M . If there are more than one such number, then output the one having maximum absolute value .   Example 1: Input: N = 13 , M = 4 Output: 12 Explanation: 12 is the Closest Number to 13 which is divisible by 4. Example 2: Input: N = -15 , M = 6 Output: -18 Explanation: -12 and -18 are both similarly close to -15 and divisible by 6. but -18 has the maximum absolute value. So, Output is -18   Your Task: You don't need to read input or print anyth...