diff --git a/Day - 24/Day-24_Suheb.cpp b/Day - 24/Day-24_Suheb.cpp new file mode 100644 index 0000000..8553d43 --- /dev/null +++ b/Day - 24/Day-24_Suheb.cpp @@ -0,0 +1,65 @@ +#include +using namespace std; + +vector orderReviews(vector &reviews, vector &gW) { + + set words(gW.begin(), gW.end()); + int n = reviews.size(); + pair g[n]; + vector res(n); + + for (int i = 0; i < n; i++) { + + string review = reviews[i]; + int m = review.length(); + int numgW = 0; + int s = 0; + + for (int j = 0; j < m; j++) { + + if (review[j] == ' ') { + + if (words.find(review.substr(s, j - s)) != words.end()) { + numgW++; + + } + s = j + 1; + + } + + } + if (words.find(review.substr(s)) != words.end()) { + numgW++; + + } + pair gi = {numgW, i}; + g[i] = gi; + } + + sort(g, g + n, [&] (pair &p1, pair &p2) { + + if(p1.first < p2.first) { + return p1.first < p2.first; + } + + else { + if(p1.first == p2.first) { + return p1.second >= p2.second; + } + + else { + return p1.first < p2.first; + } + } + }); + + reverse(g, g + n); + + for (int i = 0; i < n; i++) { + + res[i] = reviews[g[i].second]; + + } + return res; + +} \ No newline at end of file