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

Maximum possible number of monsters you can defeat?

 Q).Maximum possible number of monsters you can defeat?  =>Introduction: While playing an RPG game, you were assigned to complete one of the hardest quests in this game. There are n monsters you'll need to defeat in this quest. Each monster i is described with two integer numbers - poweri and bonusi. To defeat this monster, you'll need at least poweri experience points. If you try fighting this monster without having enough experience points, you lose immediately. You will also gain bonusi experience points if you defeat this monster. You can defeat monsters in any order. The quest turned out to be very hard - you try to defeat the monsters but keep losing repeatedly. Your friend told you that this quest is impossible to complete. Knowing that, you're interested, what is the maximum possible number of monsters you can defeat? (Question difficulty level: Hardest) => Input: The first line contains an integer, n, denoting the number of monsters. The next line contains an...

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...

Android Activity Lifecycle Phases

Q2. Create an application to display various android activity lifecycle phases. Android Program :    MainActivity.java package com.kishanhaldar.implicit_intent; package com.example.hp.myhello; import android.content.res.Configuration; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; public class MainActivity extends AppCompatActivity {       String msg = "Android :";     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);         Log.d(msg, "On created Method()");     }     protected void onStart() {         super.onStart(); ...