1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Karolina [17]
3 years ago
5

Write a C++ program that searches for anagrams in a dictionary. An anagram is a word obtained by scrambling the letters of some

string.
Computers and Technology
1 answer:
Semmy [17]3 years ago
8 0

Answer:

d, avt, car, feet, more, pitch, rome, tac, teef,

Anagrams of b in dictionary

Anagrams of cat in dictionary

avt, cat, tac,

Anagrams of room in dictionary

more, rome,

Anagrams of hello in dictionary

Anagrams of  in dictionary

Explanation:

// FindAnagrams.cpp : it is the starting point of application console.

//

#include <vector>

#include <hash_map>

#include <iostream>

#include <string>

#include <algorithm>

#include <map>

#include <set>

using namespace std;

using namespace stdext;

bool IsAnagrams(string& strA, string& strB)

{

   list<char> listA(strA.begin(), strA.end());

   list<char> listB(strB.begin(), strB.end());

   listA.sort();

   listB.sort();

   return listA == listB;

   // return equal(listA.begin(), listA.end(), listB.begin());

}

string SortChars(string str)

{

   list<char> l(str.begin(), str.end());

   l.sort();

   return string(l.begin(), l.end());

}

set<string> FindAnagrams(list<string>& dict, string findStr)

{

   map<string, set<string>> d;

   typedef pair<string, set<string>> MyPair;

   for(list<string>::const_iterator it = dict.begin(); it != dict.end(); ++it){

       string str(SortChars(*it));

       if(d.find(str) == d.end()){

           set<string> s;

           s.insert(*it);

           d.insert(MyPair(str, s));

       }

       else{

           d[str].insert(*it);

       }

   }

   string sortedStr(SortChars(findStr));

   return d[sortedStr];

}

int main(int argc, char* argv[])

{

   list<string> dict;

   dict.push_back("c");

   dict.push_back("car");

   dict.push_back("avt");

   dict.push_back("taac");

   dict.push_back("feet");

   dict.push_back("teef");

   dict.push_back("rom");

   dict.push_back("more");

   dict.push_back("pit");

   dict.sort();

   cout << "The dictionary: " << endl;

   copy(dict.begin(), dict.end(), ostream_iterator<string>(cout, ", "));

   cout << endl;

   list<string> testCases;

   testCases.push_back("d");

   testCases.push_back("car");

   testCases.push_back("rome");

   testCases.push_back("hell");

   testCases.push_back("");

   for(list<string>::iterator it = testCases.begin(); it != testCases.end(); ++it)

   {

       cout << endl << "Anagrams of " << *it << " in dictionary" << endl;

       set<string> output = FindAnagrams(dict, *it);

       copy(output.begin(), output.end(), ostream_iterator<string>(cout, ", "));

       cout << endl;

   }

   return 0;

}

You might be interested in
What does the presence of the cydia app on an ios device indicate?
Natasha2012 [34]
Had to look for the options and here is my answer. 
Cydia app is an app that is common found on those devices that are jailbroken because this provides third-party custom apps. Therefore, the presence of Cydia app on an iOS device would indicate that the device has been jailbroken. Hope this helps.
6 0
4 years ago
After how many months should a tractor's steering fluid be changed?
matrenka [14]

Answer:

after every four months

Explanation:

3 0
3 years ago
Using the constant, declare a 1D array to store 10 integers ii. Write a loop that fills the array with 10 random numbers g
Airida [17]

Answer:

Following are the code to this question:

#include <iostream>//defining header file

#include <cstdlib>//defining header file

using namespace std;

int main()//defining main method

{

const int ax[10]={1,2,3,4,5,6,7,8,9,10};//defining a const array ax that store 10 numbers

int r_num[10];//defining an array r_num

int i;//defining integer variable

for(i=0;i<10;i++)//defining for loop to calculate and store random numbers in array

{

   r_num[i]=rand()%100; //use rand function to store value in array

}

cout<<"Elements of the array that stores 10 random numbers: "<<endl;//print message

for(i=0;i<10;i++)//defining for loop for print array value

{

   cout<<r_num[i]<<endl;//print array value

}

return 0;

}

Output:

Elements of the array that stores 10 random numbers:  

83

86

77

15

93

35

86

92

49

21

Explanation:

In the above-given program, two arrays "ax, and r_num" is declared that store value in it, in which the ax array use the const keyword and in the r_num it uses the loop and random function which can be defined as follows:

In the second array "r_num", two for loop is declared, in which the first loop uses the rand function to store value in the array, and in the second array, it prints the value of the array.

5 0
3 years ago
The organization will most likely ___ to an internal user attempting to escalate privilege than to an external hacker
alexdok [17]

Answer:

respond differently.

Explanation:

NIST is acronym for National Institute of Standards and Technology and it's under the U.S. Department of Commerce. The NIST cybersecurity framework (CSF) is a powerful tool that provide guidelines for both the external and internal stakeholders of organization on how they can effectively and efficiently organize, manage, and improve their cybersecurity programs, so as to mitigate the risks associated with cybersecurity.

The NIST SP 800 30 is a risk mitigation framework that provide guidance for conducting or allows scope for research, assessment and acknowledgement for risk mitigation of federal information systems and organizations.

Typically, NIST SP 800 30 is used for translating cyber risk so that it can easily be understood by the chief executive officer (CEO) and board of both a public and private organization.

An organization is expected to most likely respond differently to an internal user such as one of its employees that attempt to escalate his or privilege than to an external hacker.

This is usually so because the organization trust its internal users to an extent than it does with external users or an attacker such as an external hacker.

8 0
3 years ago
Give three reasons why it is difficult to fight computer crime
ANEK [815]
Hackers have programs, sometimes teams, and usually advanced equipment.
5 0
3 years ago
Other questions:
  • Consider the following scenario and prescribe a solution. Situation: Tenisha is moving to Ohio to attend college. It is very hum
    15·1 answer
  • What is the error and why is there an error in the code below?
    14·1 answer
  • Select the organizational skills that can help with
    6·1 answer
  • python Create a new qualitative variable, called Elite, by binning the Top10perc variable. We are going to divide universities i
    6·1 answer
  • Number Array Class
    5·1 answer
  • All who are interested in forex trading and bitcoin mining follow me for account management to all who are busy with work so i c
    14·1 answer
  • PLEASE ANSWER ASAP
    5·1 answer
  • Just help :(((((((((((((((((((((((((((((((((((
    14·1 answer
  • Which of the following is a type of input device?
    5·1 answer
  • What is the introduction of an algorithm and programming and how does it work?
    11·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!