Skip to content

Instantly share code, notes, and snippets.

@izabera
Created July 7, 2014 23:41
Show Gist options
  • Save izabera/4f2212e8ce2f5a180011 to your computer and use it in GitHub Desktop.
Save izabera/4f2212e8ce2f5a180011 to your computer and use it in GitHub Desktop.
anagram
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
#include <vector>
#include <sstream>
bool is_anagram(std::string s1, std::string s2)
{
std::sort(s1.begin(), s1.end());
std::sort(s2.begin(), s2.end());
return s1 == s2;
}
using namespace std;
int main (int argc, char *argv[]) {
if (argc==1) {
cout << "uso: "<<argv[0] << " parola";
exit(0);
}
ifstream myfile;
string filename,parola=argv[1];
ostringstream ss;
ss<<parola.size();
filename="C:\\myprograms\\anagram\\italiano"+ss.str()+".txt";
myfile.open (filename.c_str());
vector<string> lines;
string line;
while(getline(myfile, line))
{
lines.push_back(line);
}
myfile.close();
for (int i=0;i<lines.size();i++)if(is_anagram(lines[i],parola))cout << lines[i]<<"\n";
/* costruisci il dizionario
ifstream myfile;
myfile.open ("italiano");
vector<string> lines;
string line;
while(getline(myfile, line))
{
lines.push_back(line);
}
myfile.close();
ofstream outFile;
ostringstream ss;
string filename;
for (int i=0;i<27;i++)
{
ss<<i;
filename="italiano" + ss.str() +".txt";
ss.str("");
cout<< filename << " \n";
outFile.open(filename.c_str());
for(int j=0;j<lines.size();j++){
if(lines[j].size()==i) outFile<<lines[j]<<"\n";
}
outFile.close();
}*/
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment