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
Which model is the oldest and most common technique of differentiating information systems?
steposvetlana [31]
The answer to this question is Pyramid model. In pyramid mode, all information systems will be divided into different classes that will form a hierarchy and usually it is based on importance. The most important aspects will be placed on the top of the pyramid structure while the least important aspects will be placed on the very bottom.
8 0
3 years ago
Read 2 more answers
Assume a branch instruction bne $t1, $t2, Label is located in 0x00001840 in the instruction memory. The 16-bits branch address i
Ilia_Sergeevich [38]

Answer:

a. 0x00001844

Explanation:

When the branch is takes the new program counter value is increased by 1. The value of existing memory is labelled with number sets and then next instruction is accepted in sequence. The new value is the increase in the current labelled value.

8 0
3 years ago
You are working with a database table that contains data about music. The table includes columns for track_id, track_name (name
german

The statement that completes the query is: bytes / 1000 AS kilobytes

<h3>SQL (Structured Query Language)</h3>

This is the language that is used to retrieve, update, and store data in the database.

<h3>Columns</h3>

From the question, we have the following table columns

  • track_id
  • track_name (name of the music track)
  • composer
  • bytes (digital storage size of the music track

To retrieve data from the bytes column, we make use of:

SELECT bytes ......

From the question, we understand that this column should be divided by 1000, and the AS command should be used.

So, the query becomes

SELECT bytes / 1000 AS kilobytes .....

Hence, the statement that completes the query is: bytes / 1000 AS kilobytes

Read more about database at:

brainly.com/question/24223730

5 0
2 years ago
Which for loop will iterate 100 times? Group of answer choices for (i = 0; i &lt; 99; i++) for (i = 1; i &lt; 99; i++) for (i =
cupoosta [38]

Answer:

for (i = 0; i < 100; i++);

Explanation:

8 0
3 years ago
Read 2 more answers
Write a program to help a local restaurant automate its breakfast billing system. The program should do the following:
Maurinko [17]

Answer:

Please find the code and its output in the attached file:

Explanation:

In this code a structure "menuItemType" is defined that declared float and integer variable and outside the structure its list type variable "menuList" is defined that holds and calculates its value.

In the next step, a class "Rest" is defined, and inside the class a method "getData", "showMenu", and "printCheck" is defined, in which the above methods uses the switch for input and calculate the value and the last "printCheck" calculates the Tax and Amount Due value.

In the main method, a class object is created that prints message and call the above method.

6 0
3 years ago
Other questions:
  • Consider the partially-filled array named a. What does the following loop do? (cin is a Scanner object)
    12·1 answer
  • Sites like Zillow get input about house prices from a database and provide nice summaries for readers. Write a program with two
    9·2 answers
  • bj;ljfg'cfmb dfl kbslf jflk[gkdblkfd lbrkjlfbbfkjbdfjkbadbjbbkvbk'lbk'blbf;l;lkb lm;flklmkjlvkljvkljvbfbdsjsfbbjjlkbfjklbkfj'lgg
    9·2 answers
  • _________ attacks are becoming less common in modern operating systems.
    11·1 answer
  • A developer needs to create a visualforce page that displays case data. The page will be used by both support reps and support m
    10·1 answer
  • What is the best way to get the most out of the box?
    14·2 answers
  • What is MS-Word? Write some versions of MS-Word.
    8·2 answers
  • Who is the father of computer​
    7·1 answer
  • Using the arrow key you can adjust the position of a selection in increments of
    7·1 answer
  • What are the nuclear codes?
    14·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!