Objective
Today, we're working with regular expressions. Check out the Tutorial tab for learning materials and an instructional video!
Today, we're working with regular expressions. Check out the Tutorial tab for learning materials and an instructional video!
Task
Consider a database table, Emails, which has the attributes First Name and Email ID. Given rows of data simulating the Emails table, print an alphabetically-ordered list of people whose email address ends in .
Consider a database table, Emails, which has the attributes First Name and Email ID. Given rows of data simulating the Emails table, print an alphabetically-ordered list of people whose email address ends in .
Input Format
The first line contains an integer, , total number of rows in the table.
Each of the subsequent lines contains space-separated strings denoting a person's first name and email ID, respectively.
Each of the subsequent lines contains space-separated strings denoting a person's first name and email ID, respectively.
Constraints
- Each of the first names consists of lower case letters only.
- Each of the email IDs consists of lower case letters , and only.
- The length of the first name is no longer than 20.
- The length of the email ID is no longer than 50.
Output Format
Print an alphabetically-ordered list of first names for every user with a gmail account. Each name must be printed on a new line.
Sample Input
6
riya riya@gmail.com
julia julia@julia.me
julia sjulia@gmail.com
julia julia@gmail.com
samantha samantha@gmail.com
tanya tanya@gmail.com
Sample Output
julia
julia
riya
samantha
tanya
Solution :
#include <bits/stdc++.h>
using namespace std;
int main()
{
int N;
cin >> N;
vector<string> names;
string name, email;
regex r(".+@gmail\\.com$");
for (int i=0; i<N; i++)
{
cin >> name >> email;
if (regex_match(email,r))
names.push_back(name);
}
sort(names.begin(), names.end());
int s = names.size();
for (int i=0; i<s; i++)
cout << names[i]<<"\n";
return 0;
}