Untitled
unknown
c_cpp
3 years ago
1.6 kB
11
Indexable
/*
Nom : Remi Jones
NI : A00191005
Cadre : INFO4302 - Algorithmes avancees
Objet : Examen intra - Exercice 1
Fichier : anagrammes.cpp
Date : 2023-02-16
*/
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
#include <set>
#include <algorithm>
using namespace std;
int main() {
// lecture
int N;
cin >> N;
cin.ignore();
for (int i = 0; i<N; i++) {
// lecture
set<string> mots;
string s;
getline(cin, s);
stringstream ss(s);
string token;
while (ss >> token) {
// set afin d'assurer qu'on a des mots uniques
mots.insert(token);
}
// vector afin de pouvoir adresser par index
vector<string> motsUniques;
for (auto el : mots)
motsUniques.push_back(el);
int ana = 0; // nombre d'anagrammes
for (int i = 0; i<motsUniques.size(); i++) {
// iterer a partir de i + 1 pour eviter les doublons
for (int j = i+1; j<motsUniques.size(); j++) {
string motI = motsUniques[i];
string motJ = motsUniques[j];
// trier les mots en ordre alphabetique
sort(motI.begin(), motI.end());
sort(motJ.begin(), motJ.end());
if (motI == motJ) {
ana++;
}
}
}
cout << ana << endl;
}
}
// ressource consultée : https://stackoverflow.com/questions/9107516/sorting-characters-of-a-c-string
Editor is loading...